From: Tim Bunce on
On Thu, Jan 28, 2010 at 06:31:19AM -0800, Joe Conway wrote:
> Last night I noted the following warning:
>
> plperl.c: In function 'plperl_create_sub':
>
> plperl.c:1117: warning: null argument where non-null required (argument 2)

The master branch of my git clone says line 1117 is:

subref = newRV_inc((SV*)GvCVu((GV*)sub_glob));

Does that match yours? (If not, what is the text on the line?)

What perl version are you using?
What compiler version are you using?

Tim.

--
Sent via pgsql-hackers mailing list (pgsql-hackers(a)postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

From: Joe Conway on
On 01/28/2010 07:30 AM, Tim Bunce wrote:
> On Thu, Jan 28, 2010 at 06:31:19AM -0800, Joe Conway wrote:
>> Last night I noted the following warning:
>>
>> plperl.c: In function ‘plperl_create_sub’:
>>
>> plperl.c:1117: warning: null argument where non-null required (argument 2)
>
> The master branch of my git clone says line 1117 is:
>
> subref = newRV_inc((SV*)GvCVu((GV*)sub_glob));
>
> Does that match yours? (If not, what is the text on the line?)

I pull directly from CVS, not git, but in any case my line 1117 is

subref = newRV_inc((SV*)GvCVu((GV*)sub_glob));

so it appears to be the same

> What perl version are you using?
> What compiler version are you using?

I'm on stock Fedora 12:

perl.x86_64 4:5.10.0-87.fc12
gcc.x86_64 4.4.2-20.fc12

HTH,

Joe

From: Tom Lane on
Joe Conway <mail(a)joeconway.com> writes:
> I pull directly from CVS, not git, but in any case my line 1117 is
> subref = newRV_inc((SV*)GvCVu((GV*)sub_glob));
> so it appears to be the same

>> What perl version are you using?
>> What compiler version are you using?
> I'm on stock Fedora 12:

I see the same on Fedora 11. The -E expansion of the line in question is

subref = Perl_newRV(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(((void *)0))))), (SV*)((((GV*)sub_glob)->sv_u.svu_gp)->gp_cvgen ? ((void *)0) : (((GV*)sub_glob)->sv_u.svu_gp)->gp_cv));

so it's evidently unhappy about the fact that GvCVu can return null,
while Perl_newRV is declared __attribute__((nonnull(2))).

It looks to me like this is probably a live bug not just compiler
hypersensitivity.

regards, tom lane

--
Sent via pgsql-hackers mailing list (pgsql-hackers(a)postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

From: Andrew Dunstan on


Tom Lane wrote:
> Joe Conway <mail(a)joeconway.com> writes:
>
>> I pull directly from CVS, not git, but in any case my line 1117 is
>> subref = newRV_inc((SV*)GvCVu((GV*)sub_glob));
>> so it appears to be the same
>>
>
>
>>> What perl version are you using?
>>> What compiler version are you using?
>>>
>> I'm on stock Fedora 12:
>>
>
> I see the same on Fedora 11. The -E expansion of the line in question is
>
> subref = Perl_newRV(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(((void *)0))))), (SV*)((((GV*)sub_glob)->sv_u.svu_gp)->gp_cvgen ? ((void *)0) : (((GV*)sub_glob)->sv_u.svu_gp)->gp_cv));
>
> so it's evidently unhappy about the fact that GvCVu can return null,
> while Perl_newRV is declared __attribute__((nonnull(2))).
>
> It looks to me like this is probably a live bug not just compiler
> hypersensitivity.
>
>
>

It's on my F11 box too ... I guess it's time to upgrade my work machine,
doesn't get reported by my usual setup.

Tim, any suggestions?

cheers

andrew





--
Sent via pgsql-hackers mailing list (pgsql-hackers(a)postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

From: Tim Bunce on
On Thu, Jan 28, 2010 at 12:49:20PM -0500, Tom Lane wrote:
> Joe Conway <mail(a)joeconway.com> writes:
> > I pull directly from CVS, not git, but in any case my line 1117 is
> > subref = newRV_inc((SV*)GvCVu((GV*)sub_glob));
> > so it appears to be the same
>
> >> What perl version are you using?
> >> What compiler version are you using?
> > I'm on stock Fedora 12:
>
> I see the same on Fedora 11. The -E expansion of the line in question is
>
> subref = Perl_newRV(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(((void *)0))))), (SV*)((((GV*)sub_glob)->sv_u.svu_gp)->gp_cvgen ? ((void *)0) : (((GV*)sub_glob)->sv_u.svu_gp)->gp_cv));
>
> so it's evidently unhappy about the fact that GvCVu can return null,
> while Perl_newRV is declared __attribute__((nonnull(2))).
>
> It looks to me like this is probably a live bug not just compiler
> hypersensitivity.

Yes. (ISTR there have been cases where the notnull attribute was
misapplied to some perl functions, but that's not the case here.)

I think I missed this because the Xcode compiler on Snow Leopard is
fairly old (gcc 4.2.1).

Patch attached.

Tim.