On Sun, 20 Apr 2008, Lorenzo Fiorini wrote:
> Here are the "few" warnings I get building harbour under Fedora 9
> preview with gcc (GCC) 4.3.0 20080416 (Red Hat 4.3.0-7)
> ../../hbstr.c: In function 'hb_numRound':
> ../../hbstr.c:340: warning: array subscript is below array bounds
> ../../hbstr.c: In function 'hb_numDecConv':
> ../../hbstr.c:340: warning: array subscript is below array bounds

It's a wrong compiler warning messages. I hope that it generates
valid machine code.
The warning comes from code:

   if( nPrecision < 16 )
   {
      if( nPrecision >= 0 )
      {
         return s_dPow10[ nPrecision ];
      }
      else if( nPrecision > -16 )
      {
         return 1.0 / s_dPow10[ -nPrecision ];  // line 340
      }
   }

and s_dPow10 has 16 elements (indexed from 0 to 15). So as you can see
array bounds cannot be exceed.
I do not have GCC 4.3 so I cannot check what is the exact source of
this message but if you have a while then you can try to pacify this
warning.
First you can try to change:
   nPrecision < 16
to:
   nPrecision <= 15
and:
   nPrecision > -16
to:
   nPrecision >= -15
but I do not expect it will help.
Probably explicit casting in line 340 should help:
   return 1.0 / s_dPow10[ ( unsigned int ) -nPrecision ];

best regards,
Przemek
_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to