Branch: refs/heads/yves/hpux_build_warning_suppression
  Home:   https://github.com/Perl/perl5
  Commit: b5f5991ce1f8f883892bba2c4ae29195f7cdb07c
      
https://github.com/Perl/perl5/commit/b5f5991ce1f8f883892bba2c4ae29195f7cdb07c
  Author: Yves Orton <demer...@gmail.com>
  Date:   2023-03-23 (Thu, 23 Mar 2023)

  Changed paths:
    M handy.h
    M perl.h

  Log Message:
  -----------
  perl.h - silence certain warnings on HPUX globally.

There are two warnings classes which account for a very large number of
the warnings produced when building on HPUX Itanium. We know the cause
of these warnings and we are ok with ignoring them.

One set comes from our memory wrap checks, where we end up doing a
comparison against constants in certain conditions. See the comments in
handy.h line 2723 related to PERL_MALLOC_WRAP.

The other set comes from our common "trick" of doing OO in C code with
casting. This is the foundation of how we manage SV types and how we
manage regular expression ops (regops).

If this logic really was a problem then we would have lots of test
failures and segfaults, and we do not, so we can silence them.


  Commit: 1a3a5db0f1ac43ca42be2c9e5ac94d9cde4a3405
      
https://github.com/Perl/perl5/commit/1a3a5db0f1ac43ca42be2c9e5ac94d9cde4a3405
  Author: Yves Orton <demer...@gmail.com>
  Date:   2023-03-23 (Thu, 23 Mar 2023)

  Changed paths:
    M regcomp.h

  Log Message:
  -----------
  regcomp.h - use different struct member names for U8 vs U32 str_len

It is confusing to have two different members, at different struct
offsets and with different sizes, with the same name. So rename them
so they have different names that include their size so it is obvious
what is going on.


  Commit: 1a4713cfe7f21f32803423d205cd1a4acf1215dc
      
https://github.com/Perl/perl5/commit/1a4713cfe7f21f32803423d205cd1a4acf1215dc
  Author: Yves Orton <demer...@gmail.com>
  Date:   2023-03-23 (Thu, 23 Mar 2023)

  Changed paths:
    M regcomp.c
    M regcomp.h
    M regcomp_debug.c
    M regcomp_study.c
    M regcomp_trie.c
    M regexec.c
    M regexp.h

  Log Message:
  -----------
  regcomp.h - use a common regop head union across all regnodes.

This helps with HPUX builds where we need to ensure everything
is aligned the same (on 32 bit boundaries). It also strongly
encourages everything to use the accessor macros and not access
the members directly.

By using a union for the variadic fields we make it more obvious
that some regops use the field in different ways. This patch
couples with the previous patch renaming "str_len".


  Commit: 3ceb877ddb5c227c32f38408681f05647d64061e
      
https://github.com/Perl/perl5/commit/3ceb877ddb5c227c32f38408681f05647d64061e
  Author: Yves Orton <demer...@gmail.com>
  Date:   2023-03-23 (Thu, 23 Mar 2023)

  Changed paths:
    M peep.c

  Log Message:
  -----------
  peep.c - ensure deferred_queue is initialized before use

HPUX was warning that it can be used before it is initialized.
There is no cost to nulling it out early so do so.


  Commit: c8ba450483c315b643e814f72b26992337ed73aa
      
https://github.com/Perl/perl5/commit/c8ba450483c315b643e814f72b26992337ed73aa
  Author: Yves Orton <demer...@gmail.com>
  Date:   2023-03-23 (Thu, 23 Mar 2023)

  Changed paths:
    M op.c

  Log Message:
  -----------
  op.c - deal with not-reached statement warning

Change this to test on o, and if it goes null to panic.

We used to assume that o was a valid pointer and loop infinitely,
but this meant that the old return statement at the bottom of
function was never reached.


  Commit: 11595d2d200da8d7690ad51711f7e4fa793ddda1
      
https://github.com/Perl/perl5/commit/11595d2d200da8d7690ad51711f7e4fa793ddda1
  Author: Yves Orton <demer...@gmail.com>
  Date:   2023-03-23 (Thu, 23 Mar 2023)

  Changed paths:
    M pp_sys.c

  Log Message:
  -----------
  pp_sys.c - suppress warning about comparison to unsigned value


  Commit: 27447ef8804336a580bbfd50e894e7fd027f43a7
      
https://github.com/Perl/perl5/commit/27447ef8804336a580bbfd50e894e7fd027f43a7
  Author: Yves Orton <demer...@gmail.com>
  Date:   2023-03-23 (Thu, 23 Mar 2023)

  Changed paths:
    M regcomp.c

  Log Message:
  -----------
  regcomp.c - simplify logic to eliminate unreached code

We always goto out of this if, so eliminate the unreached code
and also eliminate the useless else block.


  Commit: 219ddf0129f442517b62a41772f492221c342e6e
      
https://github.com/Perl/perl5/commit/219ddf0129f442517b62a41772f492221c342e6e
  Author: Yves Orton <demer...@gmail.com>
  Date:   2023-03-23 (Thu, 23 Mar 2023)

  Changed paths:
    M regexec.c

  Log Message:
  -----------
  regexec.c - mark the bottom of a sub as never reached

We used to have a return statement here that picky compilers
would complain about.


  Commit: c81a9483b5f5215bfc58db4363dc6be5ec684426
      
https://github.com/Perl/perl5/commit/c81a9483b5f5215bfc58db4363dc6be5ec684426
  Author: Yves Orton <demer...@gmail.com>
  Date:   2023-03-23 (Thu, 23 Mar 2023)

  Changed paths:
    M hv.c
    M perl.c
    M sv.c

  Log Message:
  -----------
  sv.c - don't cast SVTYPEMASK to svtype.

svtype is an enum with 18 values. SVTYPEMASK is 31. A picky
compiler will complain that casting 31 to a svtype is an error.

Casting both sides to a U8 should silence this.


  Commit: 144777eebc7b1585938248659a7ed18c2390ab00
      
https://github.com/Perl/perl5/commit/144777eebc7b1585938248659a7ed18c2390ab00
  Author: Yves Orton <demer...@gmail.com>
  Date:   2023-03-23 (Thu, 23 Mar 2023)

  Changed paths:
    M Porting/cmpVERSION.pl

  Log Message:
  -----------
  Porting/cmpVERSION.pl - deal with old git clients better in tag date parsing

The HPUX box we smoke on does not have a modern git and chokes
on taggerdate:unix, so we use taggerdata:iso8601 instead, and
then parse the date with Time::Local.


  Commit: 562cb205c0a01f380e669d1048616b71234b74b4
      
https://github.com/Perl/perl5/commit/562cb205c0a01f380e669d1048616b71234b74b4
  Author: Yves Orton <demer...@gmail.com>
  Date:   2023-03-23 (Thu, 23 Mar 2023)

  Changed paths:
    M t/op/sprintf2.t

  Log Message:
  -----------
  t/op/sprintf2 - TODO a failing test for now

The failure of this test usually signifies that the libc implementation
upon which perl's %g formatting relies is broken. In such cases the test
should probably be todo'd or skipped.

See: https://github.com/Perl/perl5/issues/20953#issuecomment-1478744988

Fixes: #20953


  Commit: 5cd412d8c3c8fe46cb0b66a8a068bb1c7ebcadb3
      
https://github.com/Perl/perl5/commit/5cd412d8c3c8fe46cb0b66a8a068bb1c7ebcadb3
  Author: Yves Orton <demer...@gmail.com>
  Date:   2023-03-23 (Thu, 23 Mar 2023)

  Changed paths:
    M dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pm
    M dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Constants.pm
    M dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/CountLines.pm
    M dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Eval.pm
    M dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm
    M dist/ExtUtils-ParseXS/lib/perlxs.pod
    M dist/ExtUtils-ParseXS/t/001-basic.t

  Log Message:
  -----------
  ExtUtils-ParseXS - silence warnings about unreached code in generated XS code

On HPUX we get a lot of:

"APItest.c", line 4004: warning #2111-D: statement is unreachable: PUTBACK

because people have used something like XSRETURN(1); and we generate
code that does PUTBACK; return; Adding a pragma to silence it makes the builds
happier;


  Commit: 96dacd7cc67896935f3fb7efdcc0ba7dac6679b4
      
https://github.com/Perl/perl5/commit/96dacd7cc67896935f3fb7efdcc0ba7dac6679b4
  Author: Yves Orton <demer...@gmail.com>
  Date:   2023-03-23 (Thu, 23 Mar 2023)

  Changed paths:
    M regcomp.c

  Log Message:
  -----------
  regcomp.c - eliminate assignment in while condition

This gives covertiy heartburn, and also makes the HPUX compiler
whine. Reworking it so that it is a while 1 and the condition determines
if we break out of the loop resolves the heartburn and makes for more
readable code.


  Commit: 1c88deb1aabfd59b955eea20c72b34253c34517e
      
https://github.com/Perl/perl5/commit/1c88deb1aabfd59b955eea20c72b34253c34517e
  Author: Yves Orton <demer...@gmail.com>
  Date:   2023-03-23 (Thu, 23 Mar 2023)

  Changed paths:
    M numeric.c

  Log Message:
  -----------
  numeric.c - change logical && to bitwise & in nantype test

This appears to have been broken since 2015, found by HPUX compiler warnings:

    "numeric.c", line 927: warning #4277-D: logical AND with a constant, do you
          mean to use '&'?
                          !(nantype && IS_NUMBER_IN_UV)) {


  Commit: 23b0942dc04b96d15eefa4c49ac6cda57d590e1d
      
https://github.com/Perl/perl5/commit/23b0942dc04b96d15eefa4c49ac6cda57d590e1d
  Author: Yves Orton <demer...@gmail.com>
  Date:   2023-03-23 (Thu, 23 Mar 2023)

  Changed paths:
    M dist/Devel-PPPort/PPPort_pm.PL
    M dist/Devel-PPPort/parts/inc/misc

  Log Message:
  -----------
  Devel-PPPort - deal with signed klen in check_HeUTF8

Some of the HV logic uses a negative key length to indicate utf8
keys, and this logic was using an unsigned keylength, which obviously
does not work


  Commit: 2cbda4a037c94cf0b4087952f7deedd5b242d353
      
https://github.com/Perl/perl5/commit/2cbda4a037c94cf0b4087952f7deedd5b242d353
  Author: Yves Orton <demer...@gmail.com>
  Date:   2023-03-23 (Thu, 23 Mar 2023)

  Changed paths:
    M perlio.c

  Log Message:
  -----------
  perlio.c - double cast PerlIO_lockcnt()

This avoids various warnings about alignment on HPUX.


Compare: https://github.com/Perl/perl5/compare/faeca8464164...2cbda4a037c9

Reply via email to