[Piglit] [PATCH] shader_runner: Cast isspace inputs to int to silence warnings.

Brian Paul brianp at vmware.com
Tue Feb 21 07:09:45 PST 2012


On 02/20/2012 09:31 PM, Kenneth Graunke wrote:
> On 02/19/2012 10:45 PM, Vinson Lee wrote:
>> Fixes these GCC warnings on Cygwin.
>> shader_runner.c: In function ‘strcpy_to_space’:
>> shader_runner.c:202:2: warning: array subscript has type ‘char’
>> shader_runner.c: In function ‘eat_whitespace’:
>> shader_runner.c:216:2: warning: array subscript has type ‘char’
>> shader_runner.c: In function ‘eat_text’:
>> shader_runner.c:229:2: warning: array subscript has type ‘char’
>
> These are really bizarre warnings. We're not doing array subscripting
> here at all. We're calling isspace() on a char.

IIRC, some std C lib implementations use an array of true/false values 
indexed by character to implement isspace(), isalpha(), etc.  Maybe 
that's what's happening here. But still, it's a weird warning.


> This is perfectly legal, idiomatic, and common practice. Isn't the
> whole point of isspace() and friends to tell you what class a
> /character/ is in? Yes, they're specified with ints, but people use
> chars all the time. They're supposed to be silently promoted.
>
> IMO, if the Cygwin compiler can't handle isspace() on chars, it's
> broken. I would just turn off the warning.
>
> My vote on this patch (and the asmparsertest one) would be 'no'.

Vinson, do you know if there's a compiler switch to silence this one?

-Brian



More information about the Piglit mailing list