summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2011-08-09 22:03:09 (GMT)
committerBrad King <brad.king@kitware.com>2011-08-09 22:04:04 (GMT)
commitc04613a55de394e17dab5972c540a3577d5a0f43 (patch)
tree8c955325cd2d3ff3d4d8a5a313943b79d48ba69b
parent4675f5d20423cd3331570a75794468bb3af1edaf (diff)
downloadCMake-c04613a55de394e17dab5972c540a3577d5a0f43.zip
CMake-c04613a55de394e17dab5972c540a3577d5a0f43.tar.gz
CMake-c04613a55de394e17dab5972c540a3577d5a0f43.tar.bz2
KWSys: __int64 and long long may be same type in specialization
For the specialization of hash<>(), the types long long and __int64 may be the same type. While the CMakeLists indicate that if __int64 is a alias for another type the it will not be enabled, on mingw they both appear to be the same type and enabled. This patch only enable specialization for long long OR __int64 to avoid the potential conflict. Author: Bradley Lowekamp <blowekamp@mail.nih.gov> Change-Id: I813a9ac008b296fab5a369c48e6dd5460fd0c035
-rw-r--r--Source/kwsys/hash_fun.hxx.in7
1 files changed, 3 insertions, 4 deletions
diff --git a/Source/kwsys/hash_fun.hxx.in b/Source/kwsys/hash_fun.hxx.in
index 9a9cf47..926ec92 100644
--- a/Source/kwsys/hash_fun.hxx.in
+++ b/Source/kwsys/hash_fun.hxx.in
@@ -110,6 +110,7 @@ struct hash<unsigned long> {
size_t operator()(unsigned long __x) const { return __x; }
};
+// use long long or __int64
#if @KWSYS_NAMESPACE@_USE_LONG_LONG
@KWSYS_NAMESPACE@_CXX_DEFINE_SPECIALIZATION
struct hash<long long> {
@@ -120,9 +121,7 @@ struct hash<long long> {
struct hash<unsigned long long> {
size_t operator()(unsigned long long __x) const { return __x; }
};
-#endif
-
-#if @KWSYS_NAMESPACE@_USE___INT64
+#elif @KWSYS_NAMESPACE@_USE___INT64
@KWSYS_NAMESPACE@_CXX_DEFINE_SPECIALIZATION
struct hash<__int64> {
size_t operator()(__int64 __x) const { return __x; }
@@ -131,7 +130,7 @@ struct hash<__int64> {
struct hash<unsigned __int64> {
size_t operator()(unsigned __int64 __x) const { return __x; }
};
-#endif
+#endif // use long long or __int64
} // namespace @KWSYS_NAMESPACE@