Compile warning on Perl 5.8
Opened this issue · 1 comments
pali commented
https://travis-ci.org/Dual-Life/Devel-PPPort/jobs/544798841
cc -c -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -DVERSION=\"3.52\" -DXS_VERSION=\"3.52\" -fPIC "-I/home/travis/perl5/perlbrew/perls/5.8/lib/5.8.9/x86_64-linux/CORE" -W -Wall -Wdeclaration-after-statement RealPPPort.c
In file included from RealPPPort.xs:142:0:
ppport.h: In function ‘DPPP_my_utf8_to_uvchr_buf’:
ppport.h:4951:17: warning: passing argument 1 of ‘Perl_utf8n_to_uvuni’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
s, curlen, retlen, (UTF8_ALLOW_ANYUV
^
In file included from /home/travis/perl5/perlbrew/perls/5.8/lib/5.8.9/x86_64-linux/CORE/perl.h:4561:0,
from RealPPPort.xs:31:
/home/travis/perl5/perlbrew/perls/5.8/lib/5.8.9/x86_64-linux/CORE/proto.h:1341:18: note: expected ‘U8 * {aka unsigned char *}’ but argument is of type ‘const U8 * {aka const unsigned char *}’
PERL_CALLCONV UV Perl_utf8n_to_uvuni(pTHX_ U8 *s, STRLEN curlen, STRLEN *retlen
^
In file included from RealPPPort.xs:142:0:
ppport.h:5001:45: warning: passing argument 1 of ‘Perl_utf8n_to_uvuni’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
s, curlen, retlen, UTF8_ALLOW_ANY);
^
In file included from /home/travis/perl5/perlbrew/perls/5.8/lib/5.8.9/x86_64-linux/CORE/perl.h:4561:0,
from RealPPPort.xs:31:
/home/travis/perl5/perlbrew/perls/5.8/lib/5.8.9/x86_64-linux/CORE/proto.h:1341:18: note: expected ‘U8 * {aka unsigned char *}’ but argument is of type ‘const U8 * {aka const unsigned char *}’
PERL_CALLCONV UV Perl_utf8n_to_uvuni(pTHX_ U8 *s, STRLEN curlen, STRLEN *retlen
^
In file included from RealPPPort.xs:142:0:
ppport.h:5012:35: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
if (retlen && *retlen >= 0) {
^
In file included from /home/travis/perl5/perlbrew/perls/5.8/lib/5.8.9/x86_64-linux/CORE/perl.h:4547:0,
from RealPPPort.xs:31:
RealPPPort.xs: In function ‘XS_Devel__PPPort_other_variables’:
RealPPPort.xs:277:50: warning: the comparison will always evaluate as ‘true’ for the address of ‘PL_expect’ will never be NULL [-Waddress]
mXPUSHi(&var != NULL); \
^
/home/travis/perl5/perlbrew/perls/5.8/lib/5.8.9/x86_64-linux/CORE/pp.h:328:73: note: in definition of macro ‘mXPUSHi’
ine mXPUSHi(i) STMT_START { EXTEND(sp,1); sv_setiv(PUSHmortal, (IV)(i)); } STMT
^
RealPPPort.xs:2911:17: note: in expansion of macro ‘ppp_PARSERVAR’
ppp_PARSERVAR(ppp_expect_t, PL_expect);
^
RealPPPort.xs:277:50: warning: the comparison will always evaluate as ‘true’ for the address of ‘PL_copline’ will never be NULL [-Waddress]
mXPUSHi(&var != NULL); \
^
/home/travis/perl5/perlbrew/perls/5.8/lib/5.8.9/x86_64-linux/CORE/pp.h:328:73: note: in definition of macro ‘mXPUSHi’
ine mXPUSHi(i) STMT_START { EXTEND(sp,1); sv_setiv(PUSHmortal, (IV)(i)); } STMT
^
RealPPPort.xs:2912:17: note: in expansion of macro ‘ppp_PARSERVAR’
ppp_PARSERVAR(line_t, PL_copline);
^
RealPPPort.xs:277:50: warning: the comparison will always evaluate as ‘true’ for the address of ‘PL_rsfp’ will never be NULL [-Waddress]
mXPUSHi(&var != NULL); \
^
/home/travis/perl5/perlbrew/perls/5.8/lib/5.8.9/x86_64-linux/CORE/pp.h:328:73: note: in definition of macro ‘mXPUSHi’
ine mXPUSHi(i) STMT_START { EXTEND(sp,1); sv_setiv(PUSHmortal, (IV)(i)); } STMT
^
RealPPPort.xs:2913:17: note: in expansion of macro ‘ppp_PARSERVAR’
ppp_PARSERVAR(ppp_rsfp_t, PL_rsfp);
^
RealPPPort.xs:277:50: warning: the comparison will always evaluate as ‘true’ for the address of ‘PL_rsfp_filters’ will never be NULL [-Waddress]
mXPUSHi(&var != NULL); \
^
/home/travis/perl5/perlbrew/perls/5.8/lib/5.8.9/x86_64-linux/CORE/pp.h:328:73: note: in definition of macro ‘mXPUSHi’
ine mXPUSHi(i) STMT_START { EXTEND(sp,1); sv_setiv(PUSHmortal, (IV)(i)); } STMT
^
RealPPPort.xs:2914:17: note: in expansion of macro ‘ppp_PARSERVAR’
ppp_PARSERVAR(AV *, PL_rsfp_filters);
^
RealPPPort.xs:277:50: warning: the comparison will always evaluate as ‘true’ for the address of ‘PL_linestr’ will never be NULL [-Waddress]
mXPUSHi(&var != NULL); \
^
/home/travis/perl5/perlbrew/perls/5.8/lib/5.8.9/x86_64-linux/CORE/pp.h:328:73: note: in definition of macro ‘mXPUSHi’
ine mXPUSHi(i) STMT_START { EXTEND(sp,1); sv_setiv(PUSHmortal, (IV)(i)); } STMT
^
RealPPPort.xs:2915:17: note: in expansion of macro ‘ppp_PARSERVAR’
ppp_PARSERVAR(SV *, PL_linestr);
^
RealPPPort.xs:277:50: warning: the comparison will always evaluate as ‘true’ for the address of ‘PL_bufptr’ will never be NULL [-Waddress]
mXPUSHi(&var != NULL); \
^
/home/travis/perl5/perlbrew/perls/5.8/lib/5.8.9/x86_64-linux/CORE/pp.h:328:73: note: in definition of macro ‘mXPUSHi’
ine mXPUSHi(i) STMT_START { EXTEND(sp,1); sv_setiv(PUSHmortal, (IV)(i)); } STMT
^
RealPPPort.xs:2916:17: note: in expansion of macro ‘ppp_PARSERVAR’
ppp_PARSERVAR(char *, PL_bufptr);
^
RealPPPort.xs:277:50: warning: the comparison will always evaluate as ‘true’ for the address of ‘PL_bufend’ will never be NULL [-Waddress]
mXPUSHi(&var != NULL); \
^
/home/travis/perl5/perlbrew/perls/5.8/lib/5.8.9/x86_64-linux/CORE/pp.h:328:73: note: in definition of macro ‘mXPUSHi’
ine mXPUSHi(i) STMT_START { EXTEND(sp,1); sv_setiv(PUSHmortal, (IV)(i)); } STMT
^
RealPPPort.xs:2917:17: note: in expansion of macro ‘ppp_PARSERVAR’
ppp_PARSERVAR(char *, PL_bufend);
^
RealPPPort.xs:277:50: warning: the comparison will always evaluate as ‘true’ for the address of ‘PL_lex_state’ will never be NULL [-Waddress]
mXPUSHi(&var != NULL); \
^
/home/travis/perl5/perlbrew/perls/5.8/lib/5.8.9/x86_64-linux/CORE/pp.h:328:73: note: in definition of macro ‘mXPUSHi’
ine mXPUSHi(i) STMT_START { EXTEND(sp,1); sv_setiv(PUSHmortal, (IV)(i)); } STMT
^
RealPPPort.xs:2918:17: note: in expansion of macro ‘ppp_PARSERVAR’
ppp_PARSERVAR(ppp_lex_state_t, PL_lex_state);
^
RealPPPort.xs:277:50: warning: the comparison will always evaluate as ‘true’ for the address of ‘PL_lex_stuff’ will never be NULL [-Waddress]
mXPUSHi(&var != NULL); \
^
/home/travis/perl5/perlbrew/perls/5.8/lib/5.8.9/x86_64-linux/CORE/pp.h:328:73: note: in definition of macro ‘mXPUSHi’
ine mXPUSHi(i) STMT_START { EXTEND(sp,1); sv_setiv(PUSHmortal, (IV)(i)); } STMT
^
RealPPPort.xs:2919:17: note: in expansion of macro ‘ppp_PARSERVAR’
ppp_PARSERVAR(SV *, PL_lex_stuff);
^
RealPPPort.xs:277:50: warning: the comparison will always evaluate as ‘true’ for the address of ‘PL_error_count’ will never be NULL [-Waddress]
mXPUSHi(&var != NULL); \
^
/home/travis/perl5/perlbrew/perls/5.8/lib/5.8.9/x86_64-linux/CORE/pp.h:328:73: note: in definition of macro ‘mXPUSHi’
ine mXPUSHi(i) STMT_START { EXTEND(sp,1); sv_setiv(PUSHmortal, (IV)(i)); } STMT
^
RealPPPort.xs:2920:17: note: in expansion of macro ‘ppp_PARSERVAR’
ppp_PARSERVAR(ppp_error_count_t, PL_error_count);
^
RealPPPort.xs:277:50: warning: the comparison will always evaluate as ‘true’ for the address of ‘PL_in_my’ will never be NULL [-Waddress]
mXPUSHi(&var != NULL); \
^
/home/travis/perl5/perlbrew/perls/5.8/lib/5.8.9/x86_64-linux/CORE/pp.h:328:73: note: in definition of macro ‘mXPUSHi’
ine mXPUSHi(i) STMT_START { EXTEND(sp,1); sv_setiv(PUSHmortal, (IV)(i)); } STMT
^
RealPPPort.xs:2921:17: note: in expansion of macro ‘ppp_PARSERVAR’
ppp_PARSERVAR(ppp_in_my_t, PL_in_my);
^
RealPPPort.xs:277:50: warning: the comparison will always evaluate as ‘true’ for the address of ‘PL_in_my_stash’ will never be NULL [-Waddress]
mXPUSHi(&var != NULL); \
^
/home/travis/perl5/perlbrew/perls/5.8/lib/5.8.9/x86_64-linux/CORE/pp.h:328:73: note: in definition of macro ‘mXPUSHi’
ine mXPUSHi(i) STMT_START { EXTEND(sp,1); sv_setiv(PUSHmortal, (IV)(i)); } STMT
^
RealPPPort.xs:2923:17: note: in expansion of macro ‘ppp_PARSERVAR’
ppp_PARSERVAR(HV*, PL_in_my_stash);
^
cc -c -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -DVERSION=\"3.52\" -DXS_VERSION=\"3.52\" -fPIC "-I/home/travis/perl5/perlbrew/perls/5.8/lib/5.8.9/x86_64-linux/CORE" -W -Wall -Wdeclaration-after-statement module2.c
In file included from module2.c:21:0:
/home/travis/perl5/perlbrew/perls/5.8/lib/5.8.9/x86_64-linux/CORE/patchlevel.h:122:20: warning: ‘local_patches’ defined but not used [-Wunused-variable]
static const char *local_patches[] = {
^
cc -c -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -DVERSION=\"3.52\" -DXS_VERSION=\"3.52\" -fPIC "-I/home/travis/perl5/perlbrew/perls/5.8/lib/5.8.9/x86_64-linux/CORE" -W -Wall -Wdeclaration-after-statement module3.c
module3.c: In function ‘dummy_parser_warning’:
module3.c:70:21: warning: the comparison will always evaluate as ‘true’ for the address of ‘PL_bufptr’ will never be NULL [-Waddress]
return &PL_bufptr != NULL;
^
atoomic commented
excellent to have reported these warnings using one case per version,
most of them should be pretty easy to fix