Commit 8161e0c3 by DJ Delorie Committed by DJ Delorie

functional_hash.h: Add specializations for __intN types.

* include/bits/functional_hash.h: Add specializations for __intN
types.

* include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp (__gnu_pbds):
Guard against values that might exceed size_t's precision.

From-SVN: r226117
parent 5a5062b8
2015-07-23 DJ Delorie <dj@redhat.com>
* include/bits/functional_hash.h: Add specializations for __intN
types.
* include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp (__gnu_pbds):
Guard against values that might exceed size_t's precision.
2015-07-20 Jason Merrill <jason@redhat.com> 2015-07-20 Jason Merrill <jason@redhat.com>
* include/bits/c++config: Fix abi_tag in special modes. * include/bits/c++config: Fix abi_tag in special modes.
......
...@@ -121,6 +121,23 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -121,6 +121,23 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
/// Explicit specialization for unsigned long long. /// Explicit specialization for unsigned long long.
_Cxx_hashtable_define_trivial_hash(unsigned long long) _Cxx_hashtable_define_trivial_hash(unsigned long long)
#ifdef __GLIBCXX_TYPE_INT_N_0
_Cxx_hashtable_define_trivial_hash(__GLIBCXX_TYPE_INT_N_0)
_Cxx_hashtable_define_trivial_hash(__GLIBCXX_TYPE_INT_N_0 unsigned)
#endif
#ifdef __GLIBCXX_TYPE_INT_N_1
_Cxx_hashtable_define_trivial_hash(__GLIBCXX_TYPE_INT_N_1)
_Cxx_hashtable_define_trivial_hash(__GLIBCXX_TYPE_INT_N_1 unsigned)
#endif
#ifdef __GLIBCXX_TYPE_INT_N_2
_Cxx_hashtable_define_trivial_hash(__GLIBCXX_TYPE_INT_N_2)
_Cxx_hashtable_define_trivial_hash(__GLIBCXX_TYPE_INT_N_2 unsigned)
#endif
#ifdef __GLIBCXX_TYPE_INT_N_3
_Cxx_hashtable_define_trivial_hash(__GLIBCXX_TYPE_INT_N_3)
_Cxx_hashtable_define_trivial_hash(__GLIBCXX_TYPE_INT_N_3 unsigned)
#endif
#undef _Cxx_hashtable_define_trivial_hash #undef _Cxx_hashtable_define_trivial_hash
struct _Hash_impl struct _Hash_impl
......
...@@ -270,18 +270,24 @@ namespace __gnu_pbds ...@@ -270,18 +270,24 @@ namespace __gnu_pbds
/* 21 */ 15126ul, /* 21 */ 15126ul,
/* 22 */ 24476ul, /* 22 */ 24476ul,
/* 23 */ 39602ul, /* 23 */ 39602ul,
/* 24 */ 64079ul, /* 24 */ 64079ul
#if __SIZE_MAX__ > 0xfffful
,
/* 25 */ 103681ul, /* 25 */ 103681ul,
/* 26 */ 167761ul, /* 26 */ 167761ul,
/* 27 */ 271442ul, /* 27 */ 271442ul,
/* 28 */ 439204ul, /* 28 */ 439204ul,
/* 29 */ 710646ul, /* 29 */ 710646ul
#if __SIZE_MAX__ > 0xffffful
,
/* 30 */ 1149851ul, /* 30 */ 1149851ul,
/* 31 */ 1860497ul, /* 31 */ 1860497ul,
/* 32 */ 3010349ul, /* 32 */ 3010349ul,
/* 33 */ 4870846ul, /* 33 */ 4870846ul,
/* 34 */ 7881196ul, /* 34 */ 7881196ul,
/* 35 */ 12752042ul, /* 35 */ 12752042ul
#if __SIZE_MAX__ > 0xfffffful
,
/* 36 */ 20633239ul, /* 36 */ 20633239ul,
/* 37 */ 33385282ul, /* 37 */ 33385282ul,
/* 38 */ 54018521ul, /* 38 */ 54018521ul,
...@@ -294,6 +300,9 @@ namespace __gnu_pbds ...@@ -294,6 +300,9 @@ namespace __gnu_pbds
/* 45 */ 1568397607ul, /* 45 */ 1568397607ul,
/* 46 */ 2537720636ul, /* 46 */ 2537720636ul,
/* 47 */ 4106118243ul /* 47 */ 4106118243ul
#endif
#endif
#endif
/* Pot's good, let's play */ /* Pot's good, let's play */
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment