[Mesa-dev] [PATCH] tgsi: fix parsing nan float inputs

Ilia Mirkin imirkin at alum.mit.edu
Mon Oct 10 21:40:02 UTC 2016


On Mon, Oct 10, 2016 at 5:36 PM, Roland Mainz <roland.mainz at nrubsig.org> wrote:
> On Mon, Oct 10, 2016 at 6:12 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
>> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
>> ---
>>  src/gallium/auxiliary/tgsi/tgsi_text.c | 7 ++++++-
>>  1 file changed, 6 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/gallium/auxiliary/tgsi/tgsi_text.c b/src/gallium/auxiliary/tgsi/tgsi_text.c
>> index be80842..36dc979 100644
>> --- a/src/gallium/auxiliary/tgsi/tgsi_text.c
>> +++ b/src/gallium/auxiliary/tgsi/tgsi_text.c
>> @@ -257,8 +257,13 @@ static boolean parse_float( const char **pcur, float *val )
>>              cur++;
>>        }
>>     }
>> -   if (!integral_part && !fractional_part)
>> +   if (!integral_part && !fractional_part) {
>> +      if (uprcase(*cur++) == 'N' &&
>> +          uprcase(*cur++) == 'A' &&
>> +          uprcase(*cur++) == 'N')
>> +         goto out;
>>        return FALSE;
>> +   }
>>     if (uprcase( *cur ) == 'E') {
>>        cur++;
>>        if (*cur == '-' || *cur == '+')
>
> Not digging around in the code... but...
> ... do you handle -nan and +nan ?

Further up:

   *val = (float) atof( cur );
   if (*cur == '-' || *cur == '+')
      cur++;

I'd kinda prefer to use strtof() and get rid of this function. Does
that work on MSVC?

>
> ----
>
> Bye,
> Roland
>
> --
>   __ .  . __
>  (o.\ \/ /.o) roland.mainz at nrubsig.org
>   \__\/\/__/  MPEG specialist, C&&JAVA&&Sun&&Unix programmer
>   /O /==\ O\  TEL +49 641 3992797
>  (;O/ \/ \O;)


More information about the mesa-dev mailing list