diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index b5d4d055dac..b1340c4ecb4 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,6 +1,20 @@ +2009-02-04 Benjamin Kosnik + + * include/bits/unique_ptr.h: Remove private __this_type typedef. + * include/bits/stl_vector.h: Remove private vector_type typedef. + * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: + Fix line numbers. + * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc: Same. + * testsuite/23_containers/vector/requirements/dr438/ + constructor_1_neg.cc: Same. + * testsuite/23_containers/vector/requirements/dr438/ + constructor_2_neg.cc: Same. + * testsuite/20_util/unique_ptr/modifiers/reset_neg.cc: Same. + * testsuite/20_util/unique_ptr/assign/assign.cc: Same. + 2009-02-03 Paolo Carlini - PR libstdc++/25191 + PR libstdc++/25191 * libsupc++/exception_defines.h: Depending on __EXCEPTIONS, deal consistently with __try and __catch too. * src/localename.cc: Replace try -> __try, catch -> __catch. diff --git a/libstdc++-v3/include/bits/stl_vector.h b/libstdc++-v3/include/bits/stl_vector.h index e6a42c6835c..e62aa726057 100644 --- a/libstdc++-v3/include/bits/stl_vector.h +++ b/libstdc++-v3/include/bits/stl_vector.h @@ -181,7 +181,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) __glibcxx_class_requires2(_Tp, _Alloc_value_type, _SameTypeConcept) typedef _Vector_base<_Tp, _Alloc> _Base; - typedef vector<_Tp, _Alloc> vector_type; typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; public: @@ -190,8 +189,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) typedef typename _Tp_alloc_type::const_pointer const_pointer; typedef typename _Tp_alloc_type::reference reference; typedef typename _Tp_alloc_type::const_reference const_reference; - typedef __gnu_cxx::__normal_iterator iterator; - typedef __gnu_cxx::__normal_iterator + typedef __gnu_cxx::__normal_iterator iterator; + typedef __gnu_cxx::__normal_iterator const_iterator; typedef std::reverse_iterator const_reverse_iterator; typedef std::reverse_iterator reverse_iterator; diff --git a/libstdc++-v3/include/bits/unique_ptr.h b/libstdc++-v3/include/bits/unique_ptr.h index 3123a79ccae..5e4fa8c7139 100644 --- a/libstdc++-v3/include/bits/unique_ptr.h +++ b/libstdc++-v3/include/bits/unique_ptr.h @@ -1,6 +1,6 @@ // unique_ptr implementation -*- C++ -*- -// Copyright (C) 2008 Free Software Foundation, Inc. +// Copyright (C) 2008, 2009 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -80,21 +80,20 @@ _GLIBCXX_BEGIN_NAMESPACE(std) } }; - /// 20.6.11.2 unique_ptr for single objects. + /// 20.7.12.2 unique_ptr for single objects. template > class unique_ptr { - typedef unique_ptr<_Tp, _Tp_Deleter> __this_type; typedef std::tuple<_Tp*, _Tp_Deleter> __tuple_type; - typedef __tuple_type __this_type::* __unspecified_bool_type; - typedef _Tp* __this_type::* __unspecified_pointer_type; + typedef __tuple_type unique_ptr::* __unspecified_bool_type; + typedef _Tp* unique_ptr::* __unspecified_pointer_type; public: - typedef _Tp* pointer; + typedef _Tp* pointer; typedef _Tp element_type; typedef _Tp_Deleter deleter_type; - // constructors + // Constructors. unique_ptr() : _M_t(pointer(), deleter_type()) { static_assert(!std::is_pointer::value, @@ -117,8 +116,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std) { static_assert(!std::is_reference::value, "rvalue deleter bound to reference"); } - // move constructors - unique_ptr(unique_ptr && __u) + // Move constructors. + unique_ptr(unique_ptr&& __u) : _M_t(__u.release(), std::forward(__u.get_deleter())) { } template @@ -126,10 +125,10 @@ _GLIBCXX_BEGIN_NAMESPACE(std) : _M_t(__u.release(), std::forward(__u.get_deleter())) { } - // destructor + // Destructor. ~unique_ptr() { reset(); } - // assignment + // Assignment. unique_ptr& operator=(unique_ptr&& __u) { @@ -154,7 +153,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) return *this; } - // observers + // Observers. typename std::add_lvalue_reference::type operator*() const { _GLIBCXX_DEBUG_ASSERT(get() != 0); @@ -183,9 +182,9 @@ _GLIBCXX_BEGIN_NAMESPACE(std) { return std::get<1>(_M_t); } operator __unspecified_bool_type () const - { return get() == 0 ? 0 : &__this_type::_M_t; } + { return get() == 0 ? 0 : &unique_ptr::_M_t; } - // modifiers + // Modifiers. pointer release() { @@ -211,7 +210,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) swap(_M_t, __u._M_t); } - // disable copy from lvalue + // Disable copy from lvalue. unique_ptr(const unique_ptr&) = delete; template @@ -226,24 +225,23 @@ _GLIBCXX_BEGIN_NAMESPACE(std) __tuple_type _M_t; }; - /// 20.6.11.3 unique_ptr for array objects with a runtime length + /// 20.7.12.3 unique_ptr for array objects with a runtime length // [unique.ptr.runtime] // _GLIBCXX_RESOLVE_LIB_DEFECTS // DR 740 - omit specialization for array objects with a compile time length template class unique_ptr<_Tp[], _Tp_Deleter> { - typedef unique_ptr<_Tp[], _Tp_Deleter> __this_type; - typedef std::tuple<_Tp*, _Tp_Deleter> __tuple_type; - typedef __tuple_type __this_type::* __unspecified_bool_type; - typedef _Tp* __this_type::* __unspecified_pointer_type; + typedef std::tuple<_Tp*, _Tp_Deleter> __tuple_type; + typedef __tuple_type unique_ptr::* __unspecified_bool_type; + typedef _Tp* unique_ptr::* __unspecified_pointer_type; public: - typedef _Tp* pointer; + typedef _Tp* pointer; typedef _Tp element_type; typedef _Tp_Deleter deleter_type; - // constructors + // Constructors. unique_ptr() : _M_t(pointer(), deleter_type()) { static_assert(!std::is_pointer::value, @@ -266,7 +264,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) { static_assert(!std::is_reference::value, "rvalue deleter bound to reference"); } - // move constructors + // Move constructors. unique_ptr(unique_ptr&& __u) : _M_t(__u.release(), std::forward(__u.get_deleter())) { } @@ -275,10 +273,10 @@ _GLIBCXX_BEGIN_NAMESPACE(std) : _M_t(__u.release(), std::forward(__u.get_deleter())) { } - // destructor + // Destructor. ~unique_ptr() { reset(); } - // assignment + // Assignment. unique_ptr& operator=(unique_ptr&& __u) { @@ -303,7 +301,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) return *this; } - // observers + // Observers. typename std::add_lvalue_reference::type operator[](size_t __i) const { @@ -326,9 +324,9 @@ _GLIBCXX_BEGIN_NAMESPACE(std) { return std::get<1>(_M_t); } operator __unspecified_bool_type () const - { return get() == 0 ? 0 : &__this_type::_M_t; } + { return get() == 0 ? 0 : &unique_ptr::_M_t; } - // modifiers + // Modifiers. pointer release() { @@ -358,11 +356,11 @@ _GLIBCXX_BEGIN_NAMESPACE(std) swap(_M_t, __u._M_t); } - // disable copy from lvalue + // Disable copy from lvalue. unique_ptr(const unique_ptr&) = delete; unique_ptr& operator=(const unique_ptr&) = delete; - // disable construction from convertible pointer types + // Disable construction from convertible pointer types. // (N2315 - 20.6.5.3.1) template unique_ptr(_Up*, typename diff --git a/libstdc++-v3/testsuite/20_util/unique_ptr/assign/assign.cc b/libstdc++-v3/testsuite/20_util/unique_ptr/assign/assign.cc index 3ccc8701a0c..457312ea526 100644 --- a/libstdc++-v3/testsuite/20_util/unique_ptr/assign/assign.cc +++ b/libstdc++-v3/testsuite/20_util/unique_ptr/assign/assign.cc @@ -1,7 +1,7 @@ // { dg-do compile } // { dg-options "-std=gnu++0x" } -// Copyright (C) 2008 Free Software Foundation +// Copyright (C) 2008, 2009 Free Software Foundation // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -53,7 +53,7 @@ test03() // { dg-error "used here" "" { target *-*-* } 43 } // { dg-error "no matching" "" { target *-*-* } 49 } // { dg-error "used here" "" { target *-*-* } 50 } -// { dg-error "candidates are" "" { target *-*-* } 215 } -// { dg-error "deleted function" "" { target *-*-* } 215 } -// { dg-error "deleted function" "" { target *-*-* } 362 } +// { dg-error "candidates are" "" { target *-*-* } 214 } +// { dg-error "deleted function" "" { target *-*-* } 214 } +// { dg-error "deleted function" "" { target *-*-* } 360 } // { dg-excess-errors "note" } diff --git a/libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/reset_neg.cc b/libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/reset_neg.cc index 37fcb6c9ed9..acff01ba260 100644 --- a/libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/reset_neg.cc +++ b/libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/reset_neg.cc @@ -1,7 +1,7 @@ // { dg-do compile } // { dg-options "-std=gnu++0x" } -// Copyright (C) 2008 Free Software Foundation +// Copyright (C) 2008, 2009 Free Software Foundation // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -37,4 +37,4 @@ void test01() } // { dg-error "used here" "" { target *-*-* } 36 } -// { dg-error "deleted function" "" { target *-*-* } 352 } +// { dg-error "deleted function" "" { target *-*-* } 350 } diff --git a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc index c5e445fa6db..1f991cc938f 100644 --- a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc @@ -1,6 +1,6 @@ // 2007-04-27 Paolo Carlini -// Copyright (C) 2007, 2008 Free Software Foundation +// Copyright (C) 2007, 2008, 2009 Free Software Foundation // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -19,7 +19,7 @@ // USA. // { dg-do compile } -// { dg-error "no matching" "" { target *-*-* } 1058 } +// { dg-error "no matching" "" { target *-*-* } 1057 } // { dg-excess-errors "" } #include diff --git a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc index dd115afd520..ff4021e12c1 100644 --- a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc @@ -1,6 +1,6 @@ // 2007-04-27 Paolo Carlini -// Copyright (C) 2007, 2008 Free Software Foundation +// Copyright (C) 2007, 2008, 2009 Free Software Foundation // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -19,7 +19,7 @@ // USA. // { dg-do compile } -// { dg-error "no matching" "" { target *-*-* } 998 } +// { dg-error "no matching" "" { target *-*-* } 997 } // { dg-excess-errors "" } #include diff --git a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc index 50e51cb8f3f..e1f53211e6e 100644 --- a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc @@ -1,6 +1,6 @@ // 2007-04-27 Paolo Carlini -// Copyright (C) 2007, 2008 Free Software Foundation +// Copyright (C) 2007, 2008, 2009 Free Software Foundation // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -19,7 +19,7 @@ // USA. // { dg-do compile } -// { dg-error "no matching" "" { target *-*-* } 998 } +// { dg-error "no matching" "" { target *-*-* } 997 } // { dg-excess-errors "" } #include diff --git a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc index 31642d75c5d..2c6169f1188 100644 --- a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc @@ -1,6 +1,6 @@ // 2007-04-27 Paolo Carlini -// Copyright (C) 2007, 2008 Free Software Foundation +// Copyright (C) 2007, 2008, 2009 Free Software Foundation // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -19,7 +19,7 @@ // USA. // { dg-do compile } -// { dg-error "no matching" "" { target *-*-* } 1099 } +// { dg-error "no matching" "" { target *-*-* } 1098 } // { dg-excess-errors "" } #include