Don't provide default hash struct instantiation.
authorJeff Cohen <jeffc@jolt-lang.org>
Wed, 16 Mar 2005 05:49:06 +0000 (05:49 +0000)
committerJeff Cohen <jeffc@jolt-lang.org>
Wed, 16 Mar 2005 05:49:06 +0000 (05:49 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20639 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ADT/hash_map.in

index 1681b9c3bcc2964d9d9871fca389ab9d67835198..9d2d7923945adc4096cc018afdd8585207654814 100644 (file)
@@ -106,20 +106,21 @@ using HASH_NAMESPACE::hash;
 // out specializations like stl_bvector.h, causing link conflicts.
 #include <vector>
 
-#include "llvm/ADT/HashExtras.h"
-
 #ifdef _MSC_VER
 
 // GCC and VC++ have differing ways of implementing hash_maps.  As it's not
 // standardized, that's to be expected.  This adapter class allows VC++
 // hash_map to use GCC's hash classes.
 namespace stdext {
-  template<class Key> struct hash {
-    inline size_t operator()(const Key &) const {
-      return 0;
+  template<class Key> struct hash;
+  
+  // Provide a hash function for unsigned ints...
+  template<> struct hash<unsigned int> {
+    inline size_t operator()(unsigned int Val) const {
+         return Val;
     }
   };
-  
+
   template<class Key> class hash_compare<Key, std::less<Key> > {
     std::less<Key> comp;
   public:
@@ -134,4 +135,6 @@ namespace stdext {
 
 #endif
 
+#include "llvm/ADT/HashExtras.h"
+
 #endif