aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/ADT/hash_map.in15
1 files changed, 9 insertions, 6 deletions
diff --git a/include/llvm/ADT/hash_map.in b/include/llvm/ADT/hash_map.in
index 1681b9c3bc..9d2d792394 100644
--- a/include/llvm/ADT/hash_map.in
+++ b/include/llvm/ADT/hash_map.in
@@ -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