GCC 3.1 fixes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3066 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2002-07-24 22:20:00 +00:00
parent fe8041ae39
commit 8dc67168cc
6 changed files with 31 additions and 14 deletions

View File

@ -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());
}
};

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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());
}
};

View File

@ -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;