diff options
author | Doug MacEachern <dougm@covalent.net> | 2001-06-13 03:02:16 -0700 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2001-06-13 16:17:42 +0000 |
commit | 349b520e234d80b6e0b5e71ce38de85721a7d943 (patch) | |
tree | 1596be79bdcea16d5c0199127d4030d7856aa2db | |
parent | 895349d4a309bd187260c1e6ada40aadb52544cb (diff) | |
download | perl-349b520e234d80b6e0b5e71ce38de85721a7d943.tar.gz |
Re: ext/ + -Wall
Message-ID: <Pine.LNX.4.21.0106130959050.24181-100000@mako.covalent.net>
p4raw-id: //depot/perl@10566
-rw-r--r-- | XSUB.h | 5 | ||||
-rwxr-xr-x | lib/ExtUtils/xsubpp | 9 | ||||
-rw-r--r-- | perl.h | 6 |
3 files changed, 16 insertions, 4 deletions
@@ -66,10 +66,7 @@ handled automatically by C<xsubpp>. # define XS(name) void name(pTHXo_ CV* cv) #endif -/* gcc -Wall: if an xsub has no arguments and PPCODE is used - * and none of ST, XSRETURN or XSprePUSH macros are used - * then `ax' (setup by dXSARGS) is unused. */ -#define dAX I32 ax PERL_UNUSED_DECL = MARK - PL_stack_base + 1 +#define dAX I32 ax = MARK - PL_stack_base + 1 #define dITEMS I32 items = SP - MARK diff --git a/lib/ExtUtils/xsubpp b/lib/ExtUtils/xsubpp index cadbf5c5c2..bc4d6ae916 100755 --- a/lib/ExtUtils/xsubpp +++ b/lib/ExtUtils/xsubpp @@ -1220,6 +1220,15 @@ EOF # Perl_croak(aTHX_ "Usage: $pname($report_args)"); EOF + #gcc -Wall: if an xsub has no arguments and PPCODE is used + #it is likely none of ST, XSRETURN or XSprePUSH macros are used + #hence `ax' (setup by dXSARGS) is unused + #XXX: could breakup the dXSARGS; into dSP;dMARK;dITEMS + #but such a move could break third-party extensions + print Q<<"EOF" if $PPCODE and $num_args == 0; +# PERL_UNUSED_VAR(ax); /* -Wall */ +EOF + print Q<<"EOF" if $PPCODE; # SP -= items; EOF @@ -231,6 +231,12 @@ struct perl_thread; # define PERL_UNUSED_DECL #endif +/* gcc -Wall: + * for silencing unused variables that are actually used most of the time, + * but we cannot quite get rid of, such `ax' in PPCODE+noargs xsubs + */ +#define PERL_UNUSED_VAR(var) if (0) var = var + #define NOOP (void)0 #define dNOOP extern int Perl___notused PERL_UNUSED_DECL |