diff options
author | Chris Lattner <sabre@nondot.org> | 2002-07-24 22:20:00 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-07-24 22:20:00 +0000 |
commit | 8dc67168ccbd09821ff6d963b26461e9b47028e7 (patch) | |
tree | 2c8a8e915251e5cd2d41f78b7719eed0d9e32c8d | |
parent | fe8041ae397ebbcc311469aa39dfb79f8191b412 (diff) | |
download | external_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.h | 6 | ||||
-rw-r--r-- | include/Support/PostOrderIterator.h | 7 | ||||
-rw-r--r-- | include/Support/hash_map | 10 | ||||
-rw-r--r-- | include/Support/hash_set | 9 | ||||
-rw-r--r-- | include/llvm/ADT/HashExtras.h | 6 | ||||
-rw-r--r-- | include/llvm/ADT/PostOrderIterator.h | 7 |
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; |