summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Albert <danalbert@google.com>2015-03-04 14:08:24 -0800
committerDan Albert <danalbert@google.com>2015-03-12 11:00:36 -0700
commitd4b75d9e1bc9bc849d4bc1b0b167799a6a72c816 (patch)
tree45875302b6274ffe2f0fc821f4454b6d8304f202
parentfe851e184372195a106fddfcc81b55b363c6a75b (diff)
downloadexternal_libcxx-d4b75d9e1bc9bc849d4bc1b0b167799a6a72c816.tar.gz
external_libcxx-d4b75d9e1bc9bc849d4bc1b0b167799a6a72c816.tar.bz2
external_libcxx-d4b75d9e1bc9bc849d4bc1b0b167799a6a72c816.zip
Revert "Remove several unused forward declarations. Fixes PR22605."
GCC fails to compile the following pattern with this patch: #include <set> std::set<int> foo; #include <map> using namespace std; std::map<int, int> bar; It looks like a GCC bug, but there is some external code that trips this issue that I'd rather leave unmodified. This reverts commit 59f573f670a4ff53919fcdfc2f40725723eb2c04. Bug: 19606303 Change-Id: I72ac5619b3572e03db83850cdaadc4ec618f312e
-rw-r--r--include/__hash_table2
-rw-r--r--include/__tree8
-rw-r--r--include/iterator4
3 files changed, 13 insertions, 1 deletions
diff --git a/include/__hash_table b/include/__hash_table
index 71b12b36e..71cf5fbf0 100644
--- a/include/__hash_table
+++ b/include/__hash_table
@@ -85,6 +85,8 @@ template <class _Tp, class _Hash, class _Equal, class _Alloc> class __hash_table
template <class _ConstNodePtr> class _LIBCPP_TYPE_VIS_ONLY __hash_const_iterator;
template <class _HashIterator> class _LIBCPP_TYPE_VIS_ONLY __hash_map_iterator;
template <class _HashIterator> class _LIBCPP_TYPE_VIS_ONLY __hash_map_const_iterator;
+template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
+ class _LIBCPP_TYPE_VIS_ONLY unordered_map;
template <class _NodePtr>
class _LIBCPP_TYPE_VIS_ONLY __hash_iterator
diff --git a/include/__tree b/include/__tree
index 6da2416af..2aa9c1f89 100644
--- a/include/__tree
+++ b/include/__tree
@@ -28,6 +28,14 @@ template <class _Tp, class _NodePtr, class _DiffType>
class _LIBCPP_TYPE_VIS_ONLY __tree_iterator;
template <class _Tp, class _ConstNodePtr, class _DiffType>
class _LIBCPP_TYPE_VIS_ONLY __tree_const_iterator;
+template <class _Key, class _Tp, class _Compare, class _Allocator>
+ class _LIBCPP_TYPE_VIS_ONLY map;
+template <class _Key, class _Tp, class _Compare, class _Allocator>
+ class _LIBCPP_TYPE_VIS_ONLY multimap;
+template <class _Key, class _Compare, class _Allocator>
+ class _LIBCPP_TYPE_VIS_ONLY set;
+template <class _Key, class _Compare, class _Allocator>
+ class _LIBCPP_TYPE_VIS_ONLY multiset;
/*
diff --git a/include/iterator b/include/iterator
index 04ff4c127..05d7412a4 100644
--- a/include/iterator
+++ b/include/iterator
@@ -1112,6 +1112,8 @@ typename enable_if
>::type
__unwrap_iter(__wrap_iter<_Tp*>);
+template <class _Tp, class _Alloc> class _LIBCPP_TYPE_VIS_ONLY vector;
+
template <class _Iter>
class __wrap_iter
{
@@ -1241,7 +1243,7 @@ private:
template <class _Up> friend class __wrap_iter;
template <class _CharT, class _Traits, class _Alloc> friend class basic_string;
- template <class _Tp, class _Alloc> friend class _LIBCPP_TYPE_VIS_ONLY vector;
+ template <class _Tp, class _Alloc> friend class vector;
template <class _Iter1, class _Iter2>
friend