This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
fix some 32/64-bit compiler warnings
authorDavid Mitchell <davem@iabyn.com>
Wed, 9 Sep 2015 12:02:40 +0000 (13:02 +0100)
committerDavid Mitchell <davem@iabyn.com>
Fri, 2 Oct 2015 10:18:17 +0000 (11:18 +0100)
commit73e8ff0004522621dfb42f01966853b51d5522a6
tree1e2b70f790f84ab21c55ecfc85291511408af7ed
parent0fa1f7e4e66a455cab6ccf1f9c49f2373c1ced80
fix some 32/64-bit compiler warnings

Some bits of code don't do well on a 32-bit system with 64-bit ints
(-Duse64bitint)

In particular:

_MEM_WRAP_NEEDS_RUNTIME_CHECK:
    if sizeof(MEM_SIZE) > sizeof(n), then the shift count could be
        negative

S_regmatch:
    ln and n were two different sizes and signesses, so comparing them
    warned. Since they were being mis-used as two convenient temporary
    booleans anyway, just use temporary booleans instead.

Perl_sv_vcatpvfn_flags:
    the test/assertion (IV)elen < 0 was (I think) being used to test for
    signed/unsigned conversion wrap-around. elen is of type STRLEN which
    is a pointer-based type, so can be 32-bit while IV is 64-bit. Instead
    compare it to half the maximum value of a STRLEN var to see if it may
    have wrapped.
handy.h
regexec.c
sv.c