aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2002-07-24 22:20:00 +0000
committerChris Lattner <sabre@nondot.org>2002-07-24 22:20:00 +0000
commit8dc67168ccbd09821ff6d963b26461e9b47028e7 (patch)
tree2c8a8e915251e5cd2d41f78b7719eed0d9e32c8d
parentfe8041ae397ebbcc311469aa39dfb79f8191b412 (diff)
downloadexternal_llvm-8dc67168ccbd09821ff6d963b26461e9b47028e7.zip
external_llvm-8dc67168ccbd09821ff6d963b26461e9b47028e7.tar.gz
external_llvm-8dc67168ccbd09821ff6d963b26461e9b47028e7.tar.bz2
GCC 3.1 fixes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3066 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/Support/HashExtras.h6
-rw-r--r--include/Support/PostOrderIterator.h7
-rw-r--r--include/Support/hash_map10
-rw-r--r--include/Support/hash_set9
-rw-r--r--include/llvm/ADT/HashExtras.h6
-rw-r--r--include/llvm/ADT/PostOrderIterator.h7
6 files changed, 31 insertions, 14 deletions
diff --git a/include/Support/HashExtras.h b/include/Support/HashExtras.h
index da9e3f5..5887a83 100644
--- a/include/Support/HashExtras.h
+++ b/include/Support/HashExtras.h
@@ -14,10 +14,10 @@
#include <Support/hash_map>
// Cannot specialize hash template from outside of the std namespace.
-namespace std {
+namespace HASH_NAMESPACE {
-template <> struct hash<string> {
- size_t operator()(string const &str) const {
+template <> struct hash<std::string> {
+ size_t operator()(std::string const &str) const {
return hash<char const *>()(str.c_str());
}
};
diff --git a/include/Support/PostOrderIterator.h b/include/Support/PostOrderIterator.h
index 29d315e..4f94141 100644
--- a/include/Support/PostOrderIterator.h
+++ b/include/Support/PostOrderIterator.h
@@ -10,13 +10,14 @@
#define LLVM_SUPPORT_POSTORDER_ITERATOR_H
#include "Support/GraphTraits.h"
-#include <iterator>
+#include <Support/iterator>
#include <stack>
#include <set>
template<class GraphT, class GT = GraphTraits<GraphT> >
-class po_iterator : public std::forward_iterator<typename GT::NodeType,
- ptrdiff_t> {
+class po_iterator : public forward_iterator<typename GT::NodeType, ptrdiff_t> {
+ typedef forward_iterator<typename GT::NodeType, ptrdiff_t> super;
+ typedef typename super::pointer pointer;
typedef typename GT::NodeType NodeType;
typedef typename GT::ChildIteratorType ChildItTy;
diff --git a/include/Support/hash_map b/include/Support/hash_map
index d6a0ac0..af727c4 100644
--- a/include/Support/hash_map
+++ b/include/Support/hash_map
@@ -12,9 +12,17 @@
#if __GNUC__ == 3
#include <ext/hash_map>
-using __gnu_cxx::hash_map;
+#ifndef HASH_NAMESPACE
+#define HASH_NAMESPACE __gnu_cxx
+#endif
#else
#include <hash_map>
+#ifndef HASH_NAMESPACE
+#define HASH_NAMESPACE std
+#endif
#endif
+using HASH_NAMESPACE::hash_map;
+using HASH_NAMESPACE::hash;
+
#endif
diff --git a/include/Support/hash_set b/include/Support/hash_set
index 094f892..2214b91 100644
--- a/include/Support/hash_set
+++ b/include/Support/hash_set
@@ -11,7 +11,14 @@
#define SUPPORT_HASHSET_H
#if __GNUC__==3
#include <ext/hash_set>
-using __gnu_cxx::hash_set;
+#define HASH_NAMESPACE __gnu_cxx
#else
#include <hash_set>
+#define HASH_NAMESPACE std
#endif
+
+using HASH_NAMESPACE::hash_set;
+using HASH_NAMESPACE::hash;
+
+#endif
+
diff --git a/include/llvm/ADT/HashExtras.h b/include/llvm/ADT/HashExtras.h
index da9e3f5..5887a83 100644
--- a/include/llvm/ADT/HashExtras.h
+++ b/include/llvm/ADT/HashExtras.h
@@ -14,10 +14,10 @@
#include <Support/hash_map>
// Cannot specialize hash template from outside of the std namespace.
-namespace std {
+namespace HASH_NAMESPACE {
-template <> struct hash<string> {
- size_t operator()(string const &str) const {
+template <> struct hash<std::string> {
+ size_t operator()(std::string const &str) const {
return hash<char const *>()(str.c_str());
}
};
diff --git a/include/llvm/ADT/PostOrderIterator.h b/include/llvm/ADT/PostOrderIterator.h
index 29d315e..4f94141 100644
--- a/include/llvm/ADT/PostOrderIterator.h
+++ b/include/llvm/ADT/PostOrderIterator.h
@@ -10,13 +10,14 @@
#define LLVM_SUPPORT_POSTORDER_ITERATOR_H
#include "Support/GraphTraits.h"
-#include <iterator>
+#include <Support/iterator>
#include <stack>
#include <set>
template<class GraphT, class GT = GraphTraits<GraphT> >
-class po_iterator : public std::forward_iterator<typename GT::NodeType,
- ptrdiff_t> {
+class po_iterator : public forward_iterator<typename GT::NodeType, ptrdiff_t> {
+ typedef forward_iterator<typename GT::NodeType, ptrdiff_t> super;
+ typedef typename super::pointer pointer;
typedef typename GT::NodeType NodeType;
typedef typename GT::ChildIteratorType ChildItTy;