From a13ab2bcf79b87e83bbc44e8c766b1120b875e3c Mon Sep 17 00:00:00 2001
From: Paolo Carlini <paolo.carlini@oracle.com>
Date: Thu, 11 Oct 2012 22:18:27 +0000
Subject: [PATCH] hashtable_policy.h: Revert libstdc++/53067 quick hacks thanks
 to the resolution of c++/51213.

2012-10-12  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/hashtable_policy.h: Revert libstdc++/53067 quick
	hacks thanks to the resolution of c++/51213.

From-SVN: r192380
---
 libstdc++-v3/ChangeLog                       |  5 +++
 libstdc++-v3/include/bits/hashtable_policy.h | 37 ++++++++------------
 2 files changed, 20 insertions(+), 22 deletions(-)

diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 3159cd0ce67d..f9fb77c5a16b 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,8 @@
+2012-10-12  Paolo Carlini  <paolo.carlini@oracle.com>
+
+	* include/bits/hashtable_policy.h: Revert libstdc++/53067 quick
+	hacks thanks to the resolution of c++/51213.
+
 2012-10-11  Paolo Carlini  <paolo.carlini@oracle.com>
 
 	* testsuite/23_containers/bitset/45713.cc: Tweak.
diff --git a/libstdc++-v3/include/bits/hashtable_policy.h b/libstdc++-v3/include/bits/hashtable_policy.h
index 6350ae622e4a..c1331ce65887 100644
--- a/libstdc++-v3/include/bits/hashtable_policy.h
+++ b/libstdc++-v3/include/bits/hashtable_policy.h
@@ -921,8 +921,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   /// Specialization using EBO.
   template<int _Nm, typename _Tp>
     struct _Hashtable_ebo_helper<_Nm, _Tp, true>
-    // See PR53067.
-    : public _Tp
+    : private _Tp
     {
       _Hashtable_ebo_helper() = default;
 
@@ -989,9 +988,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   template<typename _Key, typename _Value, typename _ExtractKey,
 	   typename _H1, typename _H2, typename _Hash>
     struct _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash, false>
-    // See PR53067.
-    : public  _Hashtable_ebo_helper<0, _ExtractKey>,
-      public  _Hashtable_ebo_helper<1, _Hash>
+    : private _Hashtable_ebo_helper<0, _ExtractKey>,
+      private _Hashtable_ebo_helper<1, _Hash>
     {
     private:
       typedef _Hashtable_ebo_helper<0, _ExtractKey> 	_EboExtractKey;
@@ -1066,10 +1064,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	   typename _H1, typename _H2>
     struct _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2,
 			   _Default_ranged_hash, false>
-    // See PR53067.
-    : public  _Hashtable_ebo_helper<0, _ExtractKey>,
-      public  _Hashtable_ebo_helper<1, _H1>,
-      public  _Hashtable_ebo_helper<2, _H2>
+    : private _Hashtable_ebo_helper<0, _ExtractKey>,
+      private _Hashtable_ebo_helper<1, _H1>,
+      private _Hashtable_ebo_helper<2, _H2>
     {
     private:
       typedef _Hashtable_ebo_helper<0, _ExtractKey> 	_EboExtractKey;
@@ -1150,10 +1147,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	   typename _H1, typename _H2>
     struct _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2,
 			   _Default_ranged_hash, true>
-    // See PR53067.
-    : public  _Hashtable_ebo_helper<0, _ExtractKey>,
-      public  _Hashtable_ebo_helper<1, _H1>,
-      public  _Hashtable_ebo_helper<2, _H2>
+    : private _Hashtable_ebo_helper<0, _ExtractKey>,
+      private _Hashtable_ebo_helper<1, _H1>,
+      private _Hashtable_ebo_helper<2, _H2>
     {
     private:
       typedef _Hashtable_ebo_helper<0, _ExtractKey>	_EboExtractKey;
@@ -1272,8 +1268,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	   typename _H1, typename _H2, typename _Hash>
     struct _Local_iterator_base<_Key, _Value, _ExtractKey,
 				_H1, _H2, _Hash, true>
-    // See PR53067.
-    : public _H2
+    : private _H2
     {
       _Local_iterator_base() = default;
       _Local_iterator_base(_Hash_node<_Value, true>* __p,
@@ -1305,9 +1300,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	   typename _H1, typename _H2, typename _Hash>
     struct _Local_iterator_base<_Key, _Value, _ExtractKey,
 				_H1, _H2, _Hash, false>
-    // See PR53067.
-    : public _Hash_code_base<_Key, _Value, _ExtractKey,
-			     _H1, _H2, _Hash, false>
+    : private _Hash_code_base<_Key, _Value, _ExtractKey,
+			      _H1, _H2, _Hash, false>
     {
       _Local_iterator_base() = default;
       _Local_iterator_base(_Hash_node<_Value, false>* __p,
@@ -1470,10 +1464,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	   typename _ExtractKey, typename _Equal,
 	   typename _H1, typename _H2, typename _Hash, typename _Traits>
   struct _Hashtable_base
-  // See PR53067.
-  : public  _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash,
-			      _Traits::__hash_cached::value>,
-    public _Hashtable_ebo_helper<0, _Equal>
+  : public _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash,
+			   _Traits::__hash_cached::value>,
+    private _Hashtable_ebo_helper<0, _Equal>
   {
   public:
     typedef _Key                                    key_type;
-- 
GitLab