diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index c0112cff633d0496023db396b8b5c4cc2707988a..a39f2528368ce373614ad2099537d3015180e05a 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,27 @@ +2002-12-27 Mark Mitchell <mark@codesourcery.com> + + * config/locale/gnu/ctype_members.cc + (ctype<wchar_t>::_M_convert_to_wmask): Remove stray semicolon. + * config/locale/gnu/monetary_members.cc + (moneypunct<wchar_t, true>::_M_initialize_moneypunct): Avoid + defining classes in static_cast. + (moneypunct<wchar_t, false>::_M_initialize_moneypunct): Likewise. + * config/locale/gnu/numeric_members.cc + (numpunct<wchar_t, false>::_M_initialize_numpunct): Likewise. + * include/bits/stl_deque.h (operator-): Insert typename where + required. + * include/bits/stl_multiset.h (multiset): Remove stray semicolon. + * include/bits/stl_set.h (set): Likewise. + * include/bits/valarray_meta.h (bits/slice_array.h): Include it. + * include/std/std_fstream.h (basic_fstream::open): Use this-> to + avoid Koenig lookup. + (basic_fstream::close): Likewise. + * libsupc++/new (operator delete): Remove stray semicolon. + * libsupc++/new (operator delete[]): Likewise. + * libsupc++/tinfo.cc: Likewise. + * src/stdexcept.c (logic_error::~logic_error): Likewise. + (runtime_error::~runtime_error): Likewise. + 2002-12-26 Phil Edwards <pme@gcc.gnu.org> * libsupc++/exception: Add comment (mistakenly skipped). diff --git a/libstdc++-v3/config/locale/gnu/ctype_members.cc b/libstdc++-v3/config/locale/gnu/ctype_members.cc index e0be949f2cc5d5ea7740813913c420aac86739f6..8bc2559096eca00f1c118365f0546285b2e31f98 100644 --- a/libstdc++-v3/config/locale/gnu/ctype_members.cc +++ b/libstdc++-v3/config/locale/gnu/ctype_members.cc @@ -95,7 +95,7 @@ namespace std __ret = 0; } return __ret; - }; + } wchar_t ctype<wchar_t>::do_toupper(wchar_t __c) const diff --git a/libstdc++-v3/config/locale/gnu/monetary_members.cc b/libstdc++-v3/config/locale/gnu/monetary_members.cc index b3ef13b234164071ce2206bb939be1398f26d9e0..91080da0d370e8be6ac29f9b3bc512dd15a7a301 100644 --- a/libstdc++-v3/config/locale/gnu/monetary_members.cc +++ b/libstdc++-v3/config/locale/gnu/monetary_members.cc @@ -347,9 +347,12 @@ namespace std setlocale(LC_ALL, __name); #endif - _M_decimal_point = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc)}).__w); + union __s_and_w { const char *__s; unsigned int __w; } __u; + __u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc); + _M_decimal_point = static_cast<wchar_t>(__u.__w); - _M_thousands_sep = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc)}).__w); + __u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc); + _M_thousands_sep = static_cast<wchar_t>(__u.__w); _M_grouping = __nl_langinfo_l(GROUPING, __cloc); const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); @@ -448,8 +451,12 @@ namespace std setlocale(LC_ALL, __name); #endif - _M_decimal_point = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc)}).__w); - _M_thousands_sep = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc)}).__w); + union __s_and_w { const char *__s; unsigned int __w; } __u; + __u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc); + _M_decimal_point = static_cast<wchar_t>(__u.__w); + + __u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc); + _M_thousands_sep = static_cast<wchar_t>(__u.__w); _M_grouping = __nl_langinfo_l(GROUPING, __cloc); const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); diff --git a/libstdc++-v3/config/locale/gnu/numeric_members.cc b/libstdc++-v3/config/locale/gnu/numeric_members.cc index 1aa05293d4cc092e229cdfaf0740baa737a5e657..5b666ebe608d8b5dec2fd925dbb8c7b3f181566c 100644 --- a/libstdc++-v3/config/locale/gnu/numeric_members.cc +++ b/libstdc++-v3/config/locale/gnu/numeric_members.cc @@ -86,8 +86,12 @@ namespace std else { // Named locale. - _M_decimal_point = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc)}).__w); - _M_thousands_sep = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc)}).__w); + union __s_and_w { const char *__s; unsigned int __w; } __u; + __u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc); + _M_decimal_point = static_cast<wchar_t>(__u.__w); + + __u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc); + _M_thousands_sep = static_cast<wchar_t>(__u.__w); if (_M_thousands_sep == L'\0') _M_grouping = ""; else diff --git a/libstdc++-v3/include/bits/stl_deque.h b/libstdc++-v3/include/bits/stl_deque.h index bc89059040f549405825075181970b38f0edecd5..467d73908da31d9d6974e2bc197541002d83f75f 100644 --- a/libstdc++-v3/include/bits/stl_deque.h +++ b/libstdc++-v3/include/bits/stl_deque.h @@ -319,7 +319,7 @@ namespace std operator-(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) { - return _Deque_iterator<_Tp, _RefL, _PtrL>::difference_type + return typename _Deque_iterator<_Tp, _RefL, _PtrL>::difference_type (_Deque_iterator<_Tp, _RefL, _PtrL>::_S_buffer_size()) * (__x._M_node - __y._M_node - 1) + (__x._M_cur - __x._M_first) + (__y._M_last - __y._M_cur); diff --git a/libstdc++-v3/include/bits/stl_multiset.h b/libstdc++-v3/include/bits/stl_multiset.h index 2bfc8f10c32b47c1cb82896336af5b67b90f6221..2791a2f2f34abc6b4e0cb33266c04b02b91d2f47 100644 --- a/libstdc++-v3/include/bits/stl_multiset.h +++ b/libstdc++-v3/include/bits/stl_multiset.h @@ -1,6 +1,6 @@ // Multiset implementation -*- C++ -*- -// Copyright (C) 2001 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002 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 @@ -85,7 +85,7 @@ class multiset { // concept requirements __glibcpp_class_requires(_Key, _SGIAssignableConcept) - __glibcpp_class_requires4(_Compare, bool, _Key, _Key, _BinaryFunctionConcept); + __glibcpp_class_requires4(_Compare, bool, _Key, _Key, _BinaryFunctionConcept) public: diff --git a/libstdc++-v3/include/bits/stl_set.h b/libstdc++-v3/include/bits/stl_set.h index ee708c292179a07fd884cf340a01a4f689cf8a3c..b6f70e8bbebb307fc8f900300965d9fe55c02d15 100644 --- a/libstdc++-v3/include/bits/stl_set.h +++ b/libstdc++-v3/include/bits/stl_set.h @@ -1,6 +1,6 @@ // Set implementation -*- C++ -*- -// Copyright (C) 2001 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002 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 @@ -86,7 +86,7 @@ class set { // concept requirements __glibcpp_class_requires(_Key, _SGIAssignableConcept) - __glibcpp_class_requires4(_Compare, bool, _Key, _Key, _BinaryFunctionConcept); + __glibcpp_class_requires4(_Compare, bool, _Key, _Key, _BinaryFunctionConcept) public: // typedefs: diff --git a/libstdc++-v3/include/bits/valarray_meta.h b/libstdc++-v3/include/bits/valarray_meta.h index 8b3e74fedc3bd21a883754418e9bbbbe2becf5fb..457f6bb5b71556f5cfd6a6a7a536c65fcb96a482 100644 --- a/libstdc++-v3/include/bits/valarray_meta.h +++ b/libstdc++-v3/include/bits/valarray_meta.h @@ -1,6 +1,6 @@ // The template and inlines for the -*- C++ -*- internal _Meta class. -// Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 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 @@ -39,6 +39,8 @@ #pragma GCC system_header +#include <bits/slice_array.h> + namespace std { // diff --git a/libstdc++-v3/include/std/std_fstream.h b/libstdc++-v3/include/std/std_fstream.h index 685a38dd94439ce0589c71c1faabfb633d3f7293..4e2e8447f3b1224958c2af35051302a2703ca2ae 100644 --- a/libstdc++-v3/include/std/std_fstream.h +++ b/libstdc++-v3/include/std/std_fstream.h @@ -797,7 +797,7 @@ namespace std ios_base::openmode __mode = ios_base::in | ios_base::out) { if (!_M_filebuf.open(__s, __mode)) - setstate(ios_base::failbit); + this->setstate(ios_base::failbit); } /** @@ -810,7 +810,7 @@ namespace std close() { if (!_M_filebuf.close()) - setstate(ios_base::failbit); + this->setstate(ios_base::failbit); } }; } // namespace std diff --git a/libstdc++-v3/libsupc++/new b/libstdc++-v3/libsupc++/new index af19ed810aabc8762732537d3f6b096a63c761f0..b883128901f2f2f7b6f9d30c2d1ac49667a998d0 100644 --- a/libstdc++-v3/libsupc++/new +++ b/libstdc++-v3/libsupc++/new @@ -93,8 +93,8 @@ inline void* operator new(std::size_t, void* __p) throw() { return __p; } inline void* operator new[](std::size_t, void* __p) throw() { return __p; } // Default placement versions of operator delete. -inline void operator delete (void*, void*) throw() { }; -inline void operator delete[](void*, void*) throw() { }; +inline void operator delete (void*, void*) throw() { } +inline void operator delete[](void*, void*) throw() { } //@} } // extern "C++" diff --git a/libstdc++-v3/libsupc++/tinfo.cc b/libstdc++-v3/libsupc++/tinfo.cc index adafc25e3775ed5c415900c03f5b09dd88460ef9..74d13834af4db61f920280b371aaf622158e5a7e 100644 --- a/libstdc++-v3/libsupc++/tinfo.cc +++ b/libstdc++-v3/libsupc++/tinfo.cc @@ -85,7 +85,7 @@ __do_upcast (const abi::__class_type_info *, void **) const return false; } -}; +} namespace { @@ -172,7 +172,7 @@ inline bool contained_nonvirtual_p (__class_type_info::__sub_kind access_path) static const __class_type_info *const nonvirtual_base_type = static_cast <const __class_type_info *> (0) + 1; -}; // namespace +} // namespace namespace __cxxabiv1 { @@ -735,4 +735,4 @@ __dynamic_cast (const void *src_ptr, // object started from return NULL; } -}; // namespace __cxxabiv1 +} // namespace __cxxabiv1 diff --git a/libstdc++-v3/src/stdexcept.cc b/libstdc++-v3/src/stdexcept.cc index d39d41ffef658b587be14ae232df77fae0f60009..5db7c68d36d5be0a4155c64e4ef75f51f3273830 100644 --- a/libstdc++-v3/src/stdexcept.cc +++ b/libstdc++-v3/src/stdexcept.cc @@ -1,6 +1,6 @@ // Methods for Exception Support for -*- C++ -*- -// Copyright (C) 1997, 1999, 2001 Free Software Foundation, Inc. +// Copyright (C) 1997, 1999, 2001, 2002 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 @@ -39,7 +39,7 @@ namespace std logic_error::logic_error(const string& __arg) : exception(), _M_msg(__arg) { } - logic_error::~logic_error() throw() { }; + logic_error::~logic_error() throw() { } const char* logic_error::what() const throw() @@ -60,7 +60,7 @@ namespace std runtime_error::runtime_error(const string& __arg) : exception(), _M_msg(__arg) { } - runtime_error::~runtime_error() throw() { }; + runtime_error::~runtime_error() throw() { } const char* runtime_error::what() const throw()