From 43be7fe7d7fc9b07999f5c48ca8890fd73753107 Mon Sep 17 00:00:00 2001
From: Mark Mitchell <mark@codesourcery.com>
Date: Fri, 27 Dec 2002 23:03:03 +0000
Subject: [PATCH] * 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.

From-SVN: r60547
---
 libstdc++-v3/ChangeLog                        | 24 +++++++++++++++++++
 .../config/locale/gnu/ctype_members.cc        |  2 +-
 .../config/locale/gnu/monetary_members.cc     | 15 ++++++++----
 .../config/locale/gnu/numeric_members.cc      |  8 +++++--
 libstdc++-v3/include/bits/stl_deque.h         |  2 +-
 libstdc++-v3/include/bits/stl_multiset.h      |  4 ++--
 libstdc++-v3/include/bits/stl_set.h           |  4 ++--
 libstdc++-v3/include/bits/valarray_meta.h     |  4 +++-
 libstdc++-v3/include/std/std_fstream.h        |  4 ++--
 libstdc++-v3/libsupc++/new                    |  4 ++--
 libstdc++-v3/libsupc++/tinfo.cc               |  6 ++---
 libstdc++-v3/src/stdexcept.cc                 |  6 ++---
 12 files changed, 60 insertions(+), 23 deletions(-)

diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index c0112cff633d..a39f2528368c 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 e0be949f2cc5..8bc2559096ec 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 b3ef13b23416..91080da0d370 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 1aa05293d4cc..5b666ebe608d 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 bc89059040f5..467d73908da3 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 2bfc8f10c32b..2791a2f2f34a 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 ee708c292179..b6f70e8bbebb 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 8b3e74fedc3b..457f6bb5b715 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 685a38dd9443..4e2e8447f3b1 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 af19ed810aab..b883128901f2 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 adafc25e3775..74d13834af4d 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 d39d41ffef65..5db7c68d36d5 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()
-- 
GitLab