develooper Front page | perl.perl5.porters | Postings from January 2003

Re: [PATCH] %_ (was Re: [PATCH] operation on `PL_na' may be undefined)

From:
Nicholas Clark
Date:
January 7, 2003 14:43
Subject:
Re: [PATCH] %_ (was Re: [PATCH] operation on `PL_na' may be undefined)
Message ID:
20030107224054.GD307@Bagpuss.unfortu.net
On Tue, Jan 07, 2003 at 06:01:49PM +0100, Rafael Garcia-Suarez wrote:
> hv@crypt.org wrote:
> > Thanks, the three that refer to PerlIO_printf:
> > :+++ ./pad.c    Wed Dec 25 21:20:45 2002
> > :@@ -878,8 +878,8 @@ Perl_intro_my(pTHX)
> > :@@ -926,8 +926,8 @@ Perl_pad_leavemy(pTHX)
> > :+++ ./sv.c Wed Dec 25 19:24:59 2002
> > :@@ -9359,8 +9360,9 @@ Perl_sv_dup(pTHX_ SV *sstr, CLONE_PARAMS
> > 
> > give compiler warnings:
> > pad.c: In function `Perl_intro_my':
> > pad.c:878: warning: unknown conversion type character `_' in format
> > pad.c:878: warning: long unsigned int format, pointer arg (arg 4)
> > pad.c:878: warning: too many arguments for format
> 
> I noticed this too (puzzling).
> I also noticed that some of the %_ formats were removed to silence warnings:
> http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2002-05/msg00642.html

I'm not sure that it does remove any %_
I think that it actually replaces literal string constants "%_" with
"%"SVf, where SVf is #define'ed to be "_" in perl.h (most of the time)

> > I'm not quite sure why, since PerlIO_printf does not map to a system
> > library call for this build; however, it would do so in some other
> > cases:

I think Nick I-S did whatever magic is needed to make gcc argument check
it as a *printf format, and the fact that there's a warning probably means
that I was wrong and you were right not to apply it. But I've not had time
to look yet.

Nicholas Clark



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About