summaryrefslogtreecommitdiffstats
path: root/Include/pyport.h
diff options
context:
space:
mode:
authorGregory P. Smith <greg@krypto.org>2012-12-11 02:15:46 (GMT)
committerGregory P. Smith <greg@krypto.org>2012-12-11 02:15:46 (GMT)
commit27cbcd6241d787b5e99c6ed05ec8377051f397aa (patch)
tree02fe4460f5a52993a36a9aa575397f9001700ae1 /Include/pyport.h
parent90555d0f0d0b8e4ffbbb37ba12a8e43020ad1e98 (diff)
downloadcpython-27cbcd6241d787b5e99c6ed05ec8377051f397aa.zip
cpython-27cbcd6241d787b5e99c6ed05ec8377051f397aa.tar.gz
cpython-27cbcd6241d787b5e99c6ed05ec8377051f397aa.tar.bz2
Fix the internals of our hash functions to used unsigned values during hash
computation as the overflow behavior of signed integers is undefined. In practice we require compiling everything with -fwrapv which forces overflow to be defined as twos compliment but this keeps the code cleaner for checkers or in the case where someone has compiled it without -fwrapv or their compiler's equivalent. Found by Clang trunk's Undefined Behavior Sanitizer (UBSan). Cleanup only - no functionality or hash values change.
Diffstat (limited to 'Include/pyport.h')
-rw-r--r--Include/pyport.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/Include/pyport.h b/Include/pyport.h
index 9666cf2..c74ff9c 100644
--- a/Include/pyport.h
+++ b/Include/pyport.h
@@ -145,7 +145,7 @@ Used in: PY_LONG_LONG
#endif
/* Prime multiplier used in string and various other hashes. */
-#define _PyHASH_MULTIPLIER 1000003 /* 0xf4243 */
+#define _PyHASH_MULTIPLIER 1000003UL /* 0xf4243 */
/* Parameters used for the numeric hash implementation. See notes for
_PyHash_Double in Objects/object.c. Numeric hashes are based on