This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
handy.h: Fix definition of WIDEST_UTYPE for non-core
authorKarl Williamson <khw@cpan.org>
Fri, 8 Dec 2017 01:09:15 +0000 (18:09 -0700)
committerKarl Williamson <khw@cpan.org>
Fri, 8 Dec 2017 05:12:26 +0000 (22:12 -0700)
commitde9e2639368b39c98a5f229c0c71db2c9bf32c7f
treedb17ecc9df1bc7502b094d29b28c821de41b4454
parent74b807c7d538d0f04cc376335c9d4c3aafbb13ea
handy.h: Fix definition of WIDEST_UTYPE for non-core

Because HAS_QUAD is not defined outside the perl core, this macro was
not getting defined properly for 64-bit systems.  This means, for
example, that someone using this to cast could end up with the wrong
answer.  For example isASCII(2**32) would yield true, because the high
bit would get dropped by the cast, making the value appear to be zero.

This unfortunately creates a warning message in the compile that
WIDEST_UTYPE is redefined, as the definition of that is defective in
PPPort.  It should only define it if it wasn't previously defined, and
it is wrongly using the 32 bit version.  This is added impetus to get
PPPort fixed
handy.h