develooper Front page | perl.perl5.porters | Postings from November 2000

Re: [ID 20001121.007] Not OK: perl v5.7.0 +DEVEL7776 on VMS_AXPE7.3 (UNINSTALLED)

Thread Previous
From:
Craig A. Berry
Date:
November 21, 2000 19:37
Subject:
Re: [ID 20001121.007] Not OK: perl v5.7.0 +DEVEL7776 on VMS_AXPE7.3 (UNINSTALLED)
Message ID:
p04330100b640d76a3345@[172.16.52.1]
At 7:35 PM -0600 11/21/00, Jarkko Hietaniemi wrote:
>  > %CC-I-QUESTCOMPARE, In this statement, the unsigned expression 
>"len" is being co
>>  mpared with a relational operator to a constant whose value is not 
>>greater than
>>  zero.  This might not be what you intended.
>>  at line number 2964 in file DKA100:[PERL]SV.C;1
>>  ---------------------------------------
>>
>>  as well as others in the re and Storable extensions.
>
>Please show the Storable ones (the ones in re are, I suspect, quite
>similar to the ones you showed :-)

Yes, to be precise there is one variable in re_exec.c of type STRLEN
that is being compared with zero.  In Storable, it's a comparison of
an unsigned expression with a negative (not zero) value that causes
the complaint.  I've been seeing these for some time with Compaq C
V6.2-007 on OpenVMS Alpha V7.2-1, and I wouldn't consider them build
failures since they are informational and don't prevent the build
from proceeding.  Peter's field test version of the compiler appears
to be 6.2-009 and thus only a tiny bit ahead of mine.

I haven't worked out what all is going on in the expanded macro, but
here are the gory details from Storable:


CC/DECC 
/Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=.obj/NoList/NOANSI_ALIAS/Define=("VERSION=""1.006""","XS_VERSION=""1.006"""
)/Include=([--])/Optimize  STORABLE.c

         GETMARK(flags);
........^
%CC-I-QUESTCOMPARE1, In this statement, the unsigned expression 
"(flags=((((unsigned int)((*(cxt->fio))->_flag)&0X0000000000000010)!
=0)?(-1):((*cxt->fio)?(((((*cxt->fio)->_cnt>0)&!((*cxt->fio)->_flag&0X0000000000000040))?((*cxt->fio)->_cnt--,((int)((unsig
ned char)*((*cxt->fio)->_ptr++)))):(getc)(...))):(getc)(...)" is 
being compared with an equality operator to a constant whose value
is negative.  This might not be what you intended.
at line number 3031 in file D0:[CRAIG.PERL.EXT.STORABLE]STORABLE.XS;1

                 GETMARK(flags);
................^
%CC-I-QUESTCOMPARE1, In this statement, the unsigned expression 
"(flags=((((unsigned int)((*(cxt->fio))->_flag)&0X0000000000000010)!
=0)?(-1):((*cxt->fio)?(((((*cxt->fio)->_cnt>0)&!((*cxt->fio)->_flag&0X0000000000000040))?((*cxt->fio)->_cnt--,((int)((unsig
ned char)*((*cxt->fio)->_ptr++)))):(getc)(...))):(getc)(...)" is 
being compared with an equality operator to a constant whose value
is negative.  This might not be what you intended.
at line number 3072 in file D0:[CRAIG.PERL.EXT.STORABLE]STORABLE.XS;1
-- 
____________________________________________
Craig A. Berry
mailto:craig.berry@psinetcs.com

Thread Previous


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