Benjamin Kosnik
24ef84f6c3
[multiple changes]
...
2011-10-19 Ed Smith-Rowland <3dw4rd@verizon.net>
* include/tr2/bool_set (bool_set): New.
* include/tr2/bool_set.tcc: New.
* include/tr2/dynamic_bitset (dynamic_bitset): New.
* include/tr2/ratio (kibi, mebi, gibi, tebi, pebi, exbi): New.
* include/Makefile.am: Add files.
* include/Makefile.in: Regenerate.
2011-10-19 Benjamin Kosnik <bkoz@redhat.com>
* doc/doxygen/user.cfg.in: Add tr2 files.
* testsuite/tr2/headers/all.cc: New.
* testsuite/tr2/headers/using_namespace_std_tr2.cc: New.
* include/tr2/type_traits: Tweak.
From-SVN: r180211
2011-10-19 22:05:26 +00:00
Jason Merrill
a2e70335e2
re PR c++/50500 ([C++0x] [DR 1082] move constructor should cause copy constructor to be deleted, but still declared)
...
PR c++/50500
DR 1082
* class.c (type_has_user_declared_move_constructor): New.
(type_has_user_declared_move_assign): New.
(add_implicitly_declared_members): Add lazy copy ops
even if there's a move.
* method.c (lazily_declare_fn): Delete implicit copies
if there's a move.
(maybe_explain_implicit_delete): Explain this. Use inform rather
than error.
* cp-tree.h: Declare new fns.
From-SVN: r180159
2011-10-18 13:39:15 -04:00
Benjamin Kosnik
4daba88481
[multiple changes]
...
2011-10-17 Michael Spertus <mike_spertus@symantec.com>
* gcc/c-family/c-common.c (c_common_reswords): Add __bases,
__direct_bases.
* gcc/c-family/c-common.h: Add RID_BASES and RID_DIRECT_BASES.
2011-10-17 Michael Spertus <mike_spertus@symantec.com>
* cp-tree.def: Add BASES as a new tree code.
* cp-tree.h (enum cp_trait_kind): Add CPTK_BASES, CPTK_DIRECT_BASES.
(BASES_TYPE, BASES_DIRECT): Define.
(calculate_bases, finish_bases, calculate_direct_bases): Declare.
* parser.c (cp_parser_trait_expr, cp_parser_template_argument_list,
(cp_parser_simple_type_specifier, cp_parser_save_nsdmi): Use them.
* pt.c (find_parameter_packs_r, tsubst_pack_expansion): Likewise.
* semantics.c (calculate_bases, finish_bases, calculate_direct_bases,
dfs_calculate_bases_pre, dfs_calculate_bases_post,
calculate_bases_helper): Define.
2011-10-17 Michael Spertus <mike_spertus@symantec.com>
* g++.dg/ext/bases.C: New test.
2011-10-17 Michael Spertus <mike_spertus@symantec.com>
* include/tr2/type_traits (bases, direct_bases, typelist): New.
2011-10-17 Benjamin Kosnik <bkoz@redhat.com>
* libstdc++-v3/include/Makefile.am: Add tr2 directory and includes.
* libstdc++-v3/include/Makefile.in: Regenerate.
* scripts/create_testsuite_files: Search tr2 directory.
* testsuite/libstdc++-dg/conformance.exp: Same.
* testsuite/tr2/bases/requirements/explicit_instantiation.cc: New.
* testsuite/tr2/bases/requirements/typedefs.cc: New.
* testsuite/tr2/bases/value.cc: New.
* testsuite/tr2/direct_bases/requirements/
explicit_instantiation.cc: New.
* testsuite/tr2/direct_bases/requirements/typedefs.cc: New.
* testsuite/tr2/direct_bases/value.cc: New.
From-SVN: r180121
2011-10-18 02:58:06 +00:00
Jonathan Yong
d7a3ef9794
configure.host: Use config/os/mingw32-w64 instead of config/os/mingw32 if vendor key is "w64".
...
2011-10-14 Jonathan Yong <jon_y@users.sourceforge.net>
* configure.host: Use config/os/mingw32-w64 instead of
config/os/mingw32 if vendor key is "w64".
* config/os/mingw32-w64: Duplicate from config/os/mingw32.
* config/os/mingw32-w64/os_defines.h: Enable
_GLIBCXX_FULLY_DYNAMIC_STRING if undefined.
* acinclude.m4: Set fully-dynamic-string to 1 when enabled,
0 when disabled or undefined if unset by user.
* include/bits/basic_string.h: Check if
_GLIBCXX_FULLY_DYNAMIC_STRING is set to 0 instead of undefined.
include/bits/basic_string.tcc: Likewise.
* configure: Regenerated.
* config.h.in: Likewise.
From-SVN: r179961
2011-10-14 08:57:55 +02:00
Paolo Carlini
b78eebe4f5
re PR libstdc++/50714 (codecvt_byname::codecvt::_M_c_locale_codecvt not initialized by destroyed)
...
2011-10-13 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/50714
* include/bits/codecvt.h (codecvt<>::codecvt(size_t)): Initialize
_M_c_locale_codecvt member.
* testsuite/22_locale/codecvt_byname/50714.cc: New.
From-SVN: r179948
2011-10-14 00:12:40 +00:00
Paolo Carlini
578f023490
re PR c++/50594 (Option -fwhole-program discards replaced new operator for std::string)
...
2011-10-12 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/50594
* decl.c (cxx_init_decl_processing): Add
__attribute__((externally_visible)) to operator new and
operator delete library fn.
2011-10-12 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/50594
* libsupc++/new (operator new, operator delete): Decorate with
__attribute__((__externally_visible__)).
* include/bits/c++config: Add _GLIBCXX_THROW.
* libsupc++/del_op.cc: Adjust.
* libsupc++/del_opv.cc: Likewise.
* libsupc++/del_opnt.cc: Likewise.
* libsupc++/del_opvnt.cc: Likewise.
* libsupc++/new_op.cc: Likewise.
* libsupc++/new_opv.cc: Likewise.
* libsupc++/new_opnt.cc: Likewise.
* libsupc++/new_opvnt.cc: Likewise.
* testsuite/18_support/50594.cc: New.
* testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error
line number.
From-SVN: r179863
2011-10-12 18:40:58 +00:00
Emil Wojak
92b2342a6e
re PR libstdc++/50661 (std::equal should use more efficient version for arrays of pointers)
...
2011-10-11 Emil Wojak <emil@wojak.eu>
PR c++/50661
* include/bits/stl_algobase.h (equal): Compare arrays of pointers
too with memcmp.
From-SVN: r179801
2011-10-11 12:39:18 +00:00
Paolo Carlini
57d1eadd79
pod_char_traits.h: Avoid warnings in C++0x mode when int_type is unsigned.
...
2011-10-05 Paolo Carlini <paolo.carlini@oracle.com>
* include/ext/pod_char_traits.h: Avoid warnings in C++0x mode
when int_type is unsigned.
From-SVN: r179587
2011-10-06 01:41:49 +00:00
Paolo Carlini
0e83f45aa6
re PR libstdc++/49561 ([C++0x] std::list::size complexity)
...
2011-10-04 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/49561
* include/bits/stl_list.h (_List_base<>::_List_impl::_M_size):
Add in C++0x mode.
(_List_base<>::_List_impl, _List_base<>::_M_get_node,
_List_base<>::_M_put_node, _List_base<>::_List_base(_List_base&&),
list<>::size, list<>::swap, list<>::splice): Use it.
(operator==(const list<>&, const list<>&)): Rewrite in C++0x mode.
* include/bits/list.tcc (list<>::erase): Likewise.
(list<>::merge): Adjust in C++0x mode.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
Adjust dg-error line number.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_2_neg.cc: Likewise.
From-SVN: r179528
2011-10-04 22:19:44 +00:00
Jonathan Wakely
73f0503101
alloc_traits.h (__alloc_traits::max_size): Define.
...
2011-10-04 Jonathan Wakely <jwakely.gcc@gmail.com>
* include/ext/alloc_traits.h (__alloc_traits::max_size): Define.
(__alloc_traits::rebind): Define.
* include/bits/stl_vector.h: Use them.
* testsuite/util/testsuite_allocator.h (SimpleAllocator): Define.
* testsuite/23_containers/vector/allocator/minimal.cc: New.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Adjust dg-error line numbers.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Likewise.
From-SVN: r179523
2011-10-04 21:34:54 +01:00
Paolo Carlini
1c29961267
hashtable.h (_Hashtable<>::insert(value_type&&), [...]): Don't define here...
...
2011-10-03 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/hashtable.h (_Hashtable<>::insert(value_type&&),
insert(const_iterator, value_type&&)): Don't define here...
* include/bits/unordered_set.h (__unordered_set<>,
__unordered_multiset<>): ... define here instead.
From-SVN: r179464
2011-10-03 15:28:47 +00:00
François Dumont
cdfa3dbb86
vector (vector<>::erase(iterator, iterator): Check iterators equality using normal iterators.
...
2011-10-01 François Dumont <fdumont@gcc.gnu.org>
* include/debug/vector (vector<>::erase(iterator, iterator): Check
iterators equality using normal iterators.
* include/debug/deque (deque<>::erase(iterator, iterator): Likewise.
From-SVN: r179414
2011-10-01 19:21:57 +00:00
Paolo Carlini
b24a983561
hashtable.h (_Hashtable<>::_Hashtable(_Hashtable&&)): Remove noexcept from declaration too.
...
2011-09-29 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/hashtable.h (_Hashtable<>::_Hashtable(_Hashtable&&)):
Remove noexcept from declaration too.
From-SVN: r179360
2011-09-29 17:26:32 +00:00
Paolo Carlini
a7cee01d32
re PR libstdc++/50529 ([C++0x] std::vector::erase invokes undefined behavior with empty range)
...
2011-09-26 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/50529
* include/bits/vector.tcc (vector<>::erase(iterator, iterator)):
Fix to do nothing if the range is empty.
* include/bits/stl_bvector.h: Likewise.
* include/bits/deque.tcc: Likewise.
* include/debug/vector: Adjust.
* include/debug/deque: Likewise.
* testsuite/23_containers/vector/modifiers/erase/50529.cc: New.
* testsuite/23_containers/deque/modifiers/erase/50529.cc: Likewise.
* testsuite/23_containers/deque/modifiers/erase/3.cc: Adjust.
From-SVN: r179234
2011-09-27 02:39:34 +00:00
Benjamin Kosnik
2799d97293
re PR libstdc++/48698 (gnu-versioned-namespace problems)
...
2011-09-26 Benjamin Kosnik <bkoz@redhat.com
Jonathan Wakely <jwakely.gcc@gmail.com>
PR libstdc++/48698
* acinclude.m4 (GLIBCXX_ENABLE_SYMVERS): Set libtool_VERSION here.
* configure.ac: Move AC_SUBST of libtool_VERSION past call to
GLIBCXX_ENABLE_SYMVERS.
* configure: Regenerate.
* include/bits/c++config: Use __7 as versioned namespace name.
* config/abi/pre/gnu-versioned-namespace.ver: Change mangling as
per above.
* include/c_global/cwchar: Adjust nested namespaces.
* testsuite/20_util/bind/48698.cc: Add test case.
* testsuite/ext/profile/mutex_extensions_neg.cc: Change line number.
From-SVN: r179221
2011-09-27 00:02:54 +00:00
John Salmon
82582df651
re PR libstdc++/50510 ([C++0x] transposed variable names in std::seed_seq::generate)
...
2011-09-24 John Salmon <john.salmon@deshaw.com>
PR libstdc++/50510
* include/bits/random.tcc (seed_seq::generate): Fix computation.
From-SVN: r179149
2011-09-24 22:34:50 +00:00
John Salmon
9d1f3ce6ff
re PR libstdc++/50509 ([C++0x] incorrect code in std::seed_seq::generate)
...
2011-09-24 John Salmon <john.salmon@deshaw.com>
PR libstdc++/50509
* include/bits/random.tcc (seed_seq::generate): Fix computation.
From-SVN: r179144
2011-09-24 18:28:36 +00:00
Paolo Carlini
fd1e62c239
limits.cc: Replace everywhere __int128_t -> __int128, and __uint128_t -> unsigned __int128.
...
2011-09-21 Paolo Carlini <paolo.carlini@oracle.com>
* src/limits.cc: Replace everywhere __int128_t -> __int128, and
__uint128_t -> unsigned __int128.
* include/std/type_traits: Likewise.
* include/std/limits: Likewise.
* testsuite/18_support/numeric_limits/dr559.cc: Likewise.
* testsuite/18_support/numeric_limits/lowest.cc: Likewise.
* testsuite/18_support/numeric_limits/40856.cc: Likewise.
* testsuite/18_support/numeric_limits/max_digits10.cc: Likewise.
* testsuite/util/testsuite_common_types.h: Likewise.
* testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
* testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
* testsuite/20_util/is_floating_point/value.cc: Likewise.
* testsuite/20_util/make_unsigned/requirements/typedefs-1.cc: Likewise.
* testsuite/20_util/make_unsigned/requirements/typedefs-2.cc: Likewise.
* testsuite/20_util/is_signed/value.cc: Likewise.
* testsuite/20_util/is_unsigned/value.cc: Likewise.
* testsuite/20_util/is_integral/value.cc: Likewise.
* config/abi/pre/gnu.ver: Likewise.
* acinclude.m4: Likewise.
* configure: Regenerate.
* config.h.in: Likewise.
From-SVN: r179044
2011-09-21 11:23:11 +00:00
Paolo Carlini
12bfa8bd29
re PR libstdc++/40856 (numeric_limits not specialized for __int128_t or __uint128_t)
...
2011-09-19 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/40856
* include/std/limits (numeric_limits<__int128_t>,
numeric_limits<__uint128_t>): Add.
* src/limits.cc:Define.
* config/abi/pre/gnu.ver: Export.
* include/ext/typelist.h (_GLIBCXX_TYPELIST_CHAIN16, 20): Add.
* testsuite/util/testsuite_common_types.h (integral_types_gnu): Add
(limits_tl): Use it.
* testsuite/18_support/numeric_limits/requirements/
constexpr_functions.cc: Likewise.
* testsuite/18_support/numeric_limits/40856.cc: New.
* testsuite/18_support/numeric_limits/dr559.cc: Extend.
* testsuite/18_support/numeric_limits/lowest.cc: Likewise.
* testsuite/18_support/numeric_limits/max_digits10.cc: Likewise.
* testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust dg-error
line numbers.
* testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
* testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Likewise.
* testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Likewise.
* testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
Likewise.
* testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
Likewise.
* testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
Likewise.
From-SVN: r178969
2011-09-19 11:52:49 +00:00
Paolo Carlini
6d585f0114
re PR libstdc++/50441 ([C++0x] <type_traits> is missing GNU extension types)
...
2011-09-17 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/50441
* acinclude.m4 ([GLIBCXX_ENABLE_INT128_FLOAT128]): Add.
* configure.ac: Call it.
* include/std/type_traits (__is_integral_helper<__int128_t>,
__is_integral_helper<__uint128_t>,
__is_floating_point_helper<__float128>,
__make_unsigned<__int128_t>, __make_signed<__uint128_t>): Add.
* testsuite/20_util/make_signed/requirements/typedefs-1.cc: Extend.
* testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
* testsuite/20_util/make_unsigned/requirements/typedefs-1.cc: Likewise.
* testsuite/20_util/make_unsigned/requirements/typedefs-2.cc: Likewise.
* testsuite/20_util/is_signed/value.cc: Likewise.
* testsuite/20_util/is_unsigned/value.cc: Likewise.
* testsuite/20_util/is_integral/value.cc: Likewise.
* testsuite/20_util/is_floating_point/value.cc: New.
* testsuite/20_util/is_floating_point/requirements/typedefs.cc:
Likewise.
* testsuite/20_util/is_floating_point/requirements/
explicit_instantiation.cc: Likewise.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
dg-error line numbers.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
Likewise.
* testsuite/20_util/declval/requirements/1_neg.cc: Likewise.
* configure: Regenerate.
* config.h.in: Likewise.
From-SVN: r178933
2011-09-17 23:53:26 +00:00
François Dumont
1c56f7cb72
hashtable.h (_Hashtable<>::__rehash_policy(const _RehashPolicy&)): Commit the modification of the policy only if no exception occured.
...
2011-09-17 François Dumont <fdumont@gcc.gnu.org>
* include/bits/hashtable.h (_Hashtable<>::__rehash_policy(const
_RehashPolicy&)): Commit the modification of the policy only if no
exception occured.
* testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
New.
From-SVN: r178927
2011-09-17 09:12:24 +00:00
Paolo Carlini
fae3f4598a
tuple (make_tuple, [...]): Declare constexpr.
...
2011-09-15 Paolo Carlini <paolo.carlini@oracle.com>
* include/std/tuple (make_tuple, forward_as_tuple): Declare constexpr.
(_Tuple_impl<>::_Tuple_impl(_Tuple_impl<>&&)): Likewise.
* testsuite/20_util/tuple/creation_functions/constexpr.cc: Enable
make_tuple test.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-warning
line number.
From-SVN: r178904
2011-09-16 00:41:33 +00:00
François Dumont
7e5ac0a4f5
hashtable.h (_Hashtable<>::_M_rehash): Take and restore hash policy _M_prev_resize on exception.
...
2011-09-14 François Dumont <fdumont@gcc.gnu.org>
Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/hashtable.h (_Hashtable<>::_M_rehash): Take and restore
hash policy _M_prev_resize on exception.
(_Hashtable<>::_M_insert_bucket): Capture hash policy next resize
before using it and use latter method to have it restored on exception.
(_Hashtable<>::_M_insert(_Arg&& __v, std::false_type): Likewise.
(_Hashtable<>::insert(_InputIterator, _InputIterator): Likewise.
(_Hashtable<>::rehash): Likewise.
* testsuite/23_containers/unordered_set/insert/hash_policy.cc: New.
* testsuite/23_containers/unordered_multiset/insert/hash_policy.cc:
Likewise.
Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r178861
2011-09-14 19:50:20 +00:00
Daniel Krugler
9480716c80
tuple (_Head_base<>::_M_head, [...]): Change to static constexpr functions; adjust everywhere.
...
2011-09-12 Daniel Krugler <daniel.kruegler@googlemail.com>
Paolo Carlini <paolo.carlini@oracle.com>
* include/std/tuple (_Head_base<>::_M_head, _Head_base<>::_M_tail,
_Tuple_impl<>::_M_head, _Tuple_impl<>::_M_tail): Change to static
constexpr functions; adjust everywhere.
(__get_helper, get): Declare constexpr all three overloads.
(tuple_cat): Declare constexpr; use late return type to improve
error messages.
* include/std/utility (__pair_get<>::__get, __pair_get<>::__move_get,
__pair_get<>::__const_get, get): Declare all constexpr.
* include/std/array (get): Likewise.
* testsuite/20_util/tuple/creation_functions/constexpr.cc: Re-enable
tuple_cat test.
* testsuite/23_containers/array/constexpr_get.cc: New.
* testsuite/20_util/tuple/element_access/constexpr_get.cc: Likewise.
* testsuite/20_util/pair/constexpr_get.cc: Likewise.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-error
line number.
Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r178799
2011-09-13 00:06:25 +00:00
Daniel Krugler
ac65b7d221
re PR libstdc++/50159 ([C++0x] tuple_cat only accepts two arguments)
...
2011-09-11 Daniel Krugler <daniel.kruegler@googlemail.com>
PR libstdc++/50159
* include/std/tuple (tuple_cat): Reimplement according to the
resolution of LWG 1385.
* include/std/type_traits: Define __and_ and __or_ for zero
arguments too; minor tweaks.
* testsuite/20_util/tuple/creation_functions/tuple_cat.cc: New.
* testsuite/20_util/tuple/creation_functions/constexpr.cc: Disable
for now tuple_cat test.
* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
line numbers.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
Likewise.
* doc/xml/manual/status_cxx200x.xml: Update.
From-SVN: r178770
2011-09-11 22:10:21 +00:00
Paolo Carlini
049d289351
tuple: Use everywhere std::size_t...
...
2011-09-09 Paolo Carlini <paolo.carlini@oracle.com>
* include/std/tuple: Use everywhere std::size_t... instead of int...
* include/std/functional: Likewise.
* include/std/scoped_allocator: Likewise.
* include/bits/stl_pair.h: Likewise.
From-SVN: r178746
2011-09-10 00:47:02 +00:00
Paolo Carlini
ebb6e4af61
re PR libstdc++/50336 (LWG issue 445)
...
2011-09-09 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/50336
* include/bits/streambuf_iterator.h (class istreambuf_iterator):
Implement LWG 445 in C++0x mode.
* testsuite/24_iterators/istreambuf_iterator/requirements/dr445.cc:
New.
From-SVN: r178713
2011-09-08 22:42:21 +00:00
Dodji Seketeli
3797cb21ff
PR c++/33255 - Support -Wunused-local-typedefs warning
...
gcc/
* c-decl.c (lookup_name): Use the new
maybe_record_typedef_use.
(pushdecl): Use the new
record_locally_defined_typedef.
(store_parm_decls): Allocate cfun->language.
(finish_function): Use the new maybe_warn_unused_local_typedefs,
and free cfun->language.
(c_push_function_context): Allocate cfun->language here only if
needed.
(c_pop_function_context): Likewise, mark cfun->language
for collection only when it should be done.
* c-common.c (handle_used_attribute): Don't ignore TYPE_DECL
nodes.
* c-typeck.c (c_expr_sizeof_type, c_cast_expr): Use the new
maybe_record_local_typedef_use.
gcc/c-family
* c-common.h (struct c_language_function::local_typedefs): New
field.
(record_locally_defined_typedef, maybe_record_typedef_use)
(maybe_warn_unused_local_typedefs): Declare new functions.
* c-common.c (record_locally_defined_typedef)
(maybe_record_typedef_use)
(maybe_warn_unused_local_typedefs): Define new functions.
* c.opt: Declare new -Wunused-local-typedefs flag.
gcc/cp
* name-lookup.c (pushdecl_maybe_friend_1): Use the new
record_locally_defined_typedef.
* decl.c (finish_function): Use the new
maybe_warn_unused_local_typedefs.
(grokfield): Use the new record_locally_defined_typedef.
* parser.c (lookup_name): Use the new maybe_record_typedef_use.
gcc/doc/
* invoke.texi: Update documentation for -Wunused-local-typedefs.
gcc/testsuite/
* g++.dg/warn/Wunused-local-typedefs.C: New test file.
* c-c++-common/Wunused-local-typedefs.c: Likewise.
libstdc++-v3/
* include/ext/bitmap_allocator.h
(__detail::__mini_vector::__lower_bound): Remove unused typedef.
* src/istream.cc (std::operator>>(basic_istream<char>& __in,
basic_string<char>& __str)): Likewise.
(std::getline): Likewise.
* src/valarray.cc (__valarray_product): Likewise.
From-SVN: r178692
2011-09-08 15:54:24 +02:00
Benjamin Kosnik
a7d0c94ef1
tuple (_Tuple_impl::_M_head, _M_tail): Mark constexpr.
...
2011-09-06 Benjamin Kosnik <bkoz@redhat.com>
* include/std/tuple (_Tuple_impl::_M_head, _M_tail): Mark constexpr.
(tuple(tuple&&)): Same.
(tuple(const tuple<_UElements...>& __in)): Same.
(tuple(tuple<_UElements...>&& __in)): Same.
(tuple_cat(const tuple<_TElements...>&, const tuple<_UElements...>&)):
Same.
(get): Same.
* include/std/array: Consolidate array::data usage.
* testsuite/23_containers/array/requirements/constexpr_functions.cc:
Remove extra include.
* testsuite/20_util/tuple/creation_functions/constexpr.cc: New.
* testsuite/20_util/tuple/cons/constexpr-2.cc: Add tests.
* testsuite/20_util/tuple/cons/constexpr-3.cc: Same.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust line numbers.
From-SVN: r178620
2011-09-07 00:17:09 +00:00
François Dumont
e25fc78ff5
hashtable_policy.h (_Prime_rehash_policy:: _M_next_bkt): Cast _M_max_load_factor to long double.
...
2011-09-06 François Dumont <fdumont@gcc.gnu.org>
Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/hashtable_policy.h (_Prime_rehash_policy::
_M_next_bkt): Cast _M_max_load_factor to long double.
(_Prime_rehash_policy::_M_bkt_for_elements): Use _M_next_bkt.
(_Prime_rehash_policy::_M_need_rehash): Likewise; cast all
float quantities to long double.
Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r178615
2011-09-06 22:13:46 +00:00
Paolo Carlini
4cdccf2665
re PR libstdc++/50257 ([C++0x] unordered_map slow initialization due to huge __prime_list)
...
2011-09-06 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/50257
* include/bits/hashtable_policy.h (_Prime_rehash_policy::
_M_next_bkt): Optimize for small argument.
From-SVN: r178581
2011-09-06 10:22:21 +00:00
Paolo Carlini
6aa67e7b99
bitset: Trivial formatting fixes.
...
2011-09-02 Paolo Carlini <paolo.carlini@oracle.com>
* include/std/bitset: Trivial formatting fixes.
From-SVN: r178478
2011-09-02 13:49:10 +00:00
Paolo Carlini
0217ac04cb
bitset (_Base_bitset<>::_M_are_all_aux): Remove.
...
2011-09-02 Paolo Carlini <paolo.carlini@oracle.com>
Marc Glisse <marc.glisse@normalesup.org>
* include/std/bitset (_Base_bitset<>::_M_are_all_aux): Remove.
(_Base_bitset<>::_M_are_all): Add.
(bitset<>::all): Use the latter, improve implementation.
Co-Authored-By: Marc Glisse <marc.glisse@normalesup.org>
From-SVN: r178473
2011-09-02 13:30:32 +00:00
Paolo Carlini
5da7fa30da
re PR libstdc++/50268 ([C++0x] bitset doesn't sanitize input)
...
2011-09-02 Paolo Carlini <paolo.carlini@oracle.com>
Marc Glisse <marc.glisse@normalesup.org>
PR libstdc++/50268
* include/std/bitset (struct _Sanitize_val): Add.
(bitset<>::bitset(unsigned long long)): Fix.
* testsuite/23_containers/bitset/cons/50268.cc: New.
Co-Authored-By: Marc Glisse <marc.glisse@normalesup.org>
From-SVN: r178463
2011-09-02 10:28:36 +00:00
Paolo Carlini
290df23d48
hashtable.h (_Hashtable<>::_Hashtable(_Hashtable&&)): Remove noexcept, the move constructor allocates memory...
...
2011-09-01 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/hashtable.h (_Hashtable<>::_Hashtable(_Hashtable&&)):
Remove noexcept, the move constructor allocates memory; rearrange
the code in the body to consistently update __ht._M_rehash_policy
before using _M_next_bkt on it.
* include/debug/unordered_map: Adjust.
* include/debug/unordered_set: Likewise.
* include/profile/unordered_map: Likewise.
* include/profile/unordered_set: Likewise.
* testsuite/23_containers/unordered_map/cons/
noexcept_move_construct.cc: Remove.
* testsuite/23_containers/unordered_set/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/unordered_multimap/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/unordered_multiset/cons/
noexcept_move_construct.cc: Likewise.
From-SVN: r178423
2011-09-01 15:45:20 +00:00
Paolo Carlini
dbb45bf915
chrono (operator*(const _Rep1&, const duration<>&)): Fix order of template parameters per LWG 2004.
...
2011-08-31 Paolo Carlini <paolo.carlini@oracle.com>
* include/std/chrono (operator*(const _Rep1&, const duration<>&)):
Fix order of template parameters per LWG 2004.
From-SVN: r178374
2011-08-31 10:29:31 +00:00
Paolo Carlini
b671737962
stl_iterator.h (make_move_iterator): Implement DR2061.
...
2011-08-30 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/stl_iterator.h (make_move_iterator): Implement DR2061.
* testsuite/24_iterators/move_iterator/dr2061.cc: New.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-warning
line numbers.
From-SVN: r178330
2011-08-30 15:34:50 +00:00
Paolo Carlini
ff15f019e0
re PR libstdc++/50118 (node-based containers cannot use allocators with explicit constructor template)
...
2011-08-29 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/50118
* include/bits/stl_list.h (_List_base<>::
_List_base(const allocator_type&)): Remove.
(_List_base<>::_List_base(const _Node_alloc_type&)): Add.
(list<>:list(const allocator_type&), list(size_type, const
value_type&, const allocator_type&),
list(initializer_list<, const allocator_type&),
list(_InputIterator, _InputIterator, const allocator_type&),
insert(iterator, size_type, const value_type&),
insert(iterator, _InputIterator, _InputIterator)): Adjust.
* include/bits/stl_tree.h (_Rb_tree<>::_Rb_tree(const _Compare&,
const allocator_type&)): Fix.
* include/bits/stl_map.h (map<>::map(const _Compare&,
const allocator_type&), map(initializer_list<>,
const _Compare&, const allocator_type&), map(_InputIterator,
_InputIterator, const _Compare&, const allocator_type&),
get_allocator): Adjust.
* include/bits/stl_set.h (set<>::set(const _Compare&,
const allocator_type&), set(initializer_list<>,
const _Compare&, const allocator_type&), set(_InputIterator,
_InputIterator, const _Compare&, const allocator_type&),
get_allocator): Likewise.
* include/bits/stl_multimap.h (multimap<>::multimap(const _Compare&,
const allocator_type&), multimap(initializer_list<>,
const _Compare&, const allocator_type&), multimap(_InputIterator,
_InputIterator, const _Compare&, const allocator_type&),
get_allocator): Likewise.
* include/bits/stl_multiset.h (multiset<>::multiset(const _Compare&,
const allocator_type&), multiset(initializer_list<>,
const _Compare&, const allocator_type&), multiset(_InputIterator,
_InputIterator, const _Compare&, const allocator_type&),
get_allocator): Likewise.
* include/bits/forward_list.h (_Fwd_list_base<>::
_Fwd_list_base(const _Alloc&), _Fwd_list_base(const _Fwd_list_base&,
const _Alloc&), _Fwd_list_base(_Fwd_list_base&&, const _Alloc&)):
Remove.
(_Fwd_list_base<>::_Fwd_list_base(const _Node_alloc_type&),
_Fwd_list_base(const _Fwd_list_base&,
const _Node_alloc_type&), _Fwd_list_base(_Fwd_list_base&&,
const _Node_alloc_type&)): Add.
(forward_list<>::forward_list(const _Alloc&),
forward_list(const forward_list&, const _Alloc&),
forward_list(forward_list&&, const _Alloc&),
forward_list(size_type, const _Tp&, const _Alloc&),
forward_list(_InputIterator, _InputIterator, const _Alloc&),
forward_list(std::initializer_list<>, const _Alloc&),
get_allocator): Adjust.
* include/bits/forward_list.tcc
* testsuite/util/testsuite_allocator.h (ExplicitConsAlloc): Add.
* testsuite/23_containers/unordered_map/requirements/
explicit_instantiation/5.cc: New.
* testsuite/23_containers/multimap/requirements/
explicit_instantiation/5.cc: Likewise.
* testsuite/23_containers/multimap/requirements/
explicit_instantiation/5_c++0x.cc: Likewise.
* testsuite/23_containers/set/requirements/explicit_instantiation/
5.cc: Likewise.
* testsuite/23_containers/set/requirements/explicit_instantiation/
5_c++0x.cc: Likewise.
* testsuite/23_containers/unordered_multimap/requirements/
explicit_instantiation/5.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/
explicit_instantiation/5.cc: Likewise.
* testsuite/23_containers/unordered_set/requirements/
explicit_instantiation/5.cc: Likewise.
testsuite/23_containers/multiset/requirements/explicit_instantiation/
5.cc: Likewise.
* testsuite/23_containers/multiset/requirements/
explicit_instantiation/5_c++0x.cc: Likewise.
* testsuite/23_containers/list/requirements/explicit_instantiation/
5_c++0x.cc: Likewise.
* testsuite/23_containers/list/requirements/explicit_instantiation/
5.cc: Likewise.
* testsuite/23_containers/unordered_multiset/requirements/
explicit_instantiation/5.cc: Likewise.
* testsuite/23_containers/map/requirements/explicit_instantiation/
5.cc: Likewise.
* testsuite/23_containers/map/requirements/explicit_instantiation/
5_c++0x.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
assign_neg.cc: Adjust dg-error line number.
* testsuite/23_containers/forward_list/requirements/dr438/
insert_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_2_neg.cc: Likewise.
From-SVN: r178230
2011-08-29 13:40:33 +00:00
Paolo Carlini
75f5cbb17b
move.h (swap(_Tp(&)[_Nm], _Tp(&)[_Nm])): Remove workaround for c++/49045.
...
2011-08-28 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/move.h (swap(_Tp(&)[_Nm], _Tp(&)[_Nm])): Remove
workaround for c++/49045.
* include/bits/algorithmfwd.h: Likewise.
From-SVN: r178147
2011-08-28 21:05:48 +00:00
Marc Glisse
079a5ca908
cmath: Extend/update comment.
...
2011-08-18 Marc Glisse <marc.glisse@normalesup.org>
* include/tr1/cmath: Extend/update comment.
From-SVN: r177873
2011-08-18 16:56:55 +00:00
Paolo Carlini
6ba30237b9
re PR libstdc++/50119 ([C++0x] copy_n advances InputIterator one more time than necessary)
...
2011-08-18 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/50119
* include/bits/stl_algo.h (__copy_n(_InputIterator, _Size,
_OutputIterator, input_iterator_tag)): Fix.
* testsuite/25_algorithms/copy_n/50119.cc: New.
From-SVN: r177871
2011-08-18 16:32:23 +00:00
Marc Glisse
a1998fab44
Use Solaris prototypes if possible (PR libstdc++-v3/1773)
...
Co-Authored-By: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
From-SVN: r177866
2011-08-18 14:59:47 +00:00
Paolo Carlini
e02d979a34
cmath (fmod(_Tp, _Up)): Add.
...
2011-08-12 Paolo Carlini <paolo.carlini@oracle.com>
* include/c_global/cmath (fmod(_Tp, _Up)): Add.
* include/c_std/cmath: Likewise.
From-SVN: r177698
2011-08-12 15:40:01 +00:00
Paolo Carlini
a4eeb82207
future: constexpr functions are implicitly inline.
...
2011-08-11 Paolo Carlini <paolo.carlini@oracle.com>
* include/std/future: constexpr functions are implicitly inline.
* include/std/chrono: Likewise.
* include/std/complex: Likewise.
* include/bits/move.h: Likewise.
* include/bits/stl_pair.h: Likewise.
From-SVN: r177679
2011-08-11 17:53:05 +00:00
Jonathan Wakely
a5db4ced81
alloc_traits.h: Fix doxygen @headername.
...
2011-08-07 Jonathan Wakely <jwakely.gcc@gmail.com>
* include/bits/alloc_traits.h: Fix doxygen @headername.
From-SVN: r177546
2011-08-07 13:25:48 +01:00
Benjamin Kosnik
93c66bc68a
user.cfg.in (PDF_HYPERLINKS): To NO.
...
2011-08-06 Benjamin Kosnik <bkoz@redhat.com>
* doc/doxygen/user.cfg.in (PDF_HYPERLINKS): To NO.
2011-08-06 Benjamin Kosnik <bkoz@redhat.com>
* doc/doxygen/user.cfg.in: Add scoped_allocator.
* include/debug/safe_sequence.h: Fix doxygen markup.
* include/debug/safe_unordered_base.h: Same.
* include/debug/safe_local_iterator.tcc: Same.
* include/debug/safe_unordered_container.h: Same.
* include/std/valarray: Same.
* include/std/iomanip: Same.
* include/std/streambuf: Same.
* include/std/bitset: Same.
* include/std/fstream: Same.
* include/std/functional: Same.
* include/std/istream: Same.
* include/std/ostream: Same.
* include/std/scoped_allocator: Same.
* include/std/sstream: Same.
* include/parallel/multiway_merge.h: Same.
* include/parallel/base.h: Same.
* include/parallel/for_each_selectors.h: Same.
* include/parallel/multiway_mergesort.h: Same.
* include/parallel/search.h: Same.
* include/parallel/partial_sum.h: Same.
* include/parallel/queue.h: Same.
* include/parallel/sort.h: Same.
* include/parallel/random_number.h: Same.
* include/ext/vstring.h: Same.
* include/ext/algorithm: Same.
* include/ext/pb_ds/assoc_container.h: Same.
* include/ext/bitmap_allocator.h: Same.
* include/ext/stdio_filebuf.h: Same.
* include/ext/memory: Same.
* include/ext/functional: Same.
* include/bits/basic_ios.h: Same.
* include/bits/stl_list.h: Same.
* include/bits/stl_map.h: Same.
* include/bits/stl_algobase.h: Same.
* include/bits/stl_queue.h: Same.
* include/bits/gslice.h: Same.
* include/bits/locale_classes.h: Same.
* include/bits/stl_set.h: Same.
* include/bits/locale_facets.h: Same.
* include/bits/stl_stack.h: Same.
* include/bits/stl_heap.h: Same.
* include/bits/forward_list.h: Same.
* include/bits/stream_iterator.h: Same.
* include/bits/basic_string.h: Same.
* include/bits/stl_multimap.h: Same.
* include/bits/stl_pair.h: Same.
* include/bits/ios_base.h: Same.
* include/bits/stl_numeric.h: Same.
* include/bits/stl_vector.h: Same.
* include/bits/stl_deque.h: Same.
* include/bits/codecvt.h: Same.
* include/bits/stl_multiset.h: Same.
* include/bits/stl_uninitialized.h: Same.
* include/bits/ptr_traits.h: Same.
* include/bits/slice_array.h: Same.
* include/bits/stl_iterator_base_funcs.h: Same.
* include/bits/stl_algo.h: Same.
* include/bits/stl_iterator.h: Same.
* include/bits/stl_tempbuf.h: Same.
* include/bits/regex.h: Same.
* include/bits/range_access.h: Same.
* include/bits/random.h: Same.
* include/bits/alloc_traits.h: Same.
* include/bits/regex_error.h: Same.
* include/bits/locale_facets_nonio.h: Same.
* include/bits/stl_relops.h: Same.
* include/backward/auto_ptr.h: Same.
* libsupc++/initializer_list: Same.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
Adjust line numbers.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Same.
* testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
Same.
* testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc:
Same.
From-SVN: r177542
2011-08-07 07:27:06 +00:00
Paolo Carlini
bdc05efbc8
atomic.cc: Use noexcept.
...
2011-08-04 Paolo Carlini <paolo.carlini@oracle.com>
* src/atomic.cc: Use noexcept.
* include/std/atomic: Likewise.
* include/bits/atomic_0.h: Likewise.
* include/bits/atomic_2.h: Likewise.
* include/bits/atomic_base.h: Likewise.
From-SVN: r177413
2011-08-04 19:57:48 +00:00
Benjamin Kosnik
2c4caf0ab9
tuple: Mark more constructors constexpr.
...
2011-08-03 Benjamin Kosnik <bkoz@redhat.com>
* include/std/tuple: Mark more constructors constexpr.
* testsuite/20_util/tuple/cons/constexpr.cc: Split into and extend as:
* testsuite/20_util/tuple/cons/constexpr-2.cc: ...this.
* testsuite/20_util/tuple/cons/constexpr-3.cc: ... and this.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust line numbers.
2011-08-03 Benjamin Kosnik <bkoz@redhat.com>
François Dumont <francois.cppdevs@free.fr>
* testsuite/23_containers/array/at_neg.cc: Move...
* testsuite/23_containers/array/at.cc: ...here. Remove
-fno-exceptions, call const at member function.
Co-Authored-By: François Dumont <francois.cppdevs@free.fr>
From-SVN: r177299
2011-08-03 21:05:14 +00:00
Paolo Carlini
750867b7f4
re PR c++/49813 ([C++0x] sinh vs asinh vs constexpr)
...
2011-08-01 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/49813
* include/c_global/cmath (isinf): Remove workaround.
From-SVN: r177070
2011-08-01 19:26:39 +00:00
Paolo Carlini
3096f51bf6
re PR libstdc++/49925 ([C++0x] ADL bug mixing boost::shared_ptr and std::make_shared<>)
...
2011-07-31 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/49925
* include/bits/shared_ptr.h (make_shared): Qualify allocate_shared
with std::.
* include/bits/shared_ptr_base.h (__make_shared): Likewise.
From-SVN: r176985
2011-07-31 20:28:45 +00:00