changeset d9ca1c98a690 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=d9ca1c98a690
description:
        clang/gcc: Use STL hash function for int64_t and uint64_t

        This patch changes the guards for the definition of hash functions to
        also exclude the int64_t and uint64_t hash functions in the case we
        are using the c++0x STL <unordered_map> (and <hash>) or the TR1
        version of the same header. Previously the guard only covered the hash
        function for strings, but it seems there is also no need to define a
        hash for the 64-bit integer types, and this has caused problems with
        builds on 32-bit Ubuntu.

diffstat:

 src/base/hashmap.hh |  13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

diffs (37 lines):

diff -r 91a6f8f07074 -r d9ca1c98a690 src/base/hashmap.hh
--- a/src/base/hashmap.hh       Tue Apr 24 00:48:57 2012 -0700
+++ b/src/base/hashmap.hh       Wed Apr 25 08:57:18 2012 -0400
@@ -95,8 +95,9 @@
 #define hash_set unordered_set
 #define hash_multiset unordered_multiset
 
-// these versions also have an existing hash function for strings
-#define HAVE_STRING_HASH 1
+// these versions also have an existing hash function for strings and
+// 64-bit integer types
+#define HAVE_HASH_FUNCTIONS 1
 
 #if HAVE_STD_UNORDERED_MAP
 
@@ -152,6 +153,11 @@
 //
 
 __hash_namespace_begin
+
+// if the hash functions for 64-bit integer types and strings are not
+// already available, then declare them here
+#if !defined(HAVE_HASH_FUNCTIONS)
+
 #if !defined(__LP64__) && !defined(__alpha__) && !defined(__SUNPRO_CC)
     template<>
     struct hash<uint64_t> {
@@ -168,9 +174,6 @@
     };
 #endif
 
-// if the hash functions for strings are not already defined, then
-// declare them here
-#if !defined(HAVE_STRING_HASH)
     template<>
     struct hash<std::string> {
         size_t operator()(const std::string &s) const {
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to