[Bug 210837] lang/perl5.22 (and related?): ext/re/re_exec.c has long long format matched up with long argument

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Mon Jul 25 09:20:22 UTC 2016


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=210837

--- Comment #11 from Mark Millard <markmi at dsl-only.net> ---
(In reply to Mathieu Arnold from comment #8)

I still have more to do but I got a little time to see what the compile
messages were like on armv6 (an ILP32 FreeBSD architecture) after applying the
patch to the 5.22 source.

I did not see any warnings about odd mixes of 32-bit types and 64-bit types
between formats and values/storage or other such.


BUT:

For armv6 there are format warnings for 32-bit types int vs. unsigned long
(31-bit precision and sign bit vs. 32-bit precision and no sign bit). Various
files get the same messages. I list the message a little later below.

If the types stay int and unsigned long on amd64 it would end up being 32-bit
(int) vs. 64-bit (unsigned long). So this could then be more than a signed vs.
not issue. But something might auto adjust so I need to try amd64 directly.
That will not be tonight.

./const-xs.inc:1451:21: warning: format specifies type 'int' but the argument
has type 'line_t' (aka 'unsigned long') [-Wformat]
                          COP_FILE(cop), CopLINE(cop));
                                         ^~~~~~~~~~~~
../../cop.h:529:21: note: expanded from macro 'CopLINE'
#define CopLINE(c)              ((c)->cop_line)
                                ^~~~~~~~~~~~~~~
./const-xs.inc:1456:50: warning: format specifies type 'int' but the argument
has type 'line_t' (aka 'unsigned long') [-Wformat]
                          COP_FILE_F " line %d\n", sv, COP_FILE(cop),
CopLINE(cop));
                                            ~~                       
^~~~~~~~~~~~
                                            %lu
../../cop.h:529:21: note: expanded from macro 'CopLINE'
#define CopLINE(c)              ((c)->cop_line)
                                ^~~~~~~~~~~~~~~



Side note:

There was the message:

op.c:13436:35: warning: comparison of constant 2251799813685247 with expression
of type 'PADOFFSET' (aka 'unsigned long') is always false
[-Wtautological-consta
nt-out-of-range-compare]
                if (intro && base >
                             ~~~~ ^

I do not know if 5.24 gets this or not. Nor if this is an okay "always false"
or not.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-perl mailing list