egcs/fortran warnings (Was : possible spurious warning for isdigit)

Richard Henderson rth@cygnus.com
Mon Nov 10 12:27:00 GMT 1997


On Mon, Nov 10, 1997 at 01:31:41PM -0500, Craig Burley wrote:
> >The functions take an int argument whose value is either representable
> >as an unsigned char, or is EOF.  gcc is warning when you pass a char,
> >since when char is sign extended to int it may take on values which
> >are not representable as an unsigned char.

Depending on the context, you may be able to state that the characters,
due to previous scanning, are all < 128, and so the warning can be ignored.

Off and on I get patches for modutils "fixing" the same problem in the
output of gprof, despite the fact that I know the string being tested
is a C symbol.

> However, I'll have to put this off at least until I can take
> enough time to figure out just how one is supposed to portably,
> efficiently, and standard-conformingly do things like
> `isalpha("foo"[0])' when the compiler encodes strings as `char *'.

isalpha and friends take an int and are guaranteed to work for both
signed and unsigned character input.  They also work for EOF which,
I believe, is not a member of any set.


r~



More information about the Gcc mailing list