GCC 3.1 fixes

llvm-svn: 3066
diff --git a/llvm/include/Support/HashExtras.h b/llvm/include/Support/HashExtras.h
index da9e3f5..5887a83 100644
--- a/llvm/include/Support/HashExtras.h
+++ b/llvm/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());
   }
 };