• Gregory P. Smith's avatar
    Fix the internals of our hash functions to used unsigned values during hash · c2176e46
    Gregory P. Smith yazdı
    computation as the overflow behavior of signed integers is undefined.
    
    NOTE: This change is smaller compared to 3.2 as much of this cleanup had
    already been done.  I added the comment that my change in 3.2 added so that the
    code would match up.  Otherwise this just adds or synchronizes appropriate UL
    designations on some constants to be pedantic.
    
    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.
    c2176e46
pyport.h 30.3 KB