This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: Patch for isdigit/isalpha/etc. macro arguments
- From: Mark Kettenis <mark dot kettenis at xs4all dot nl>
- To: sje at cup dot hp dot com
- Cc: gdb-patches at sourceware dot org
- Date: Sat, 7 Apr 2007 01:48:44 +0200 (CEST)
- Subject: Re: Patch for isdigit/isalpha/etc. macro arguments
- References: <200704062336.QAA17806@hpsje.cup.hp.com>
> Date: Fri, 6 Apr 2007 16:36:06 -0700 (PDT)
> From: Steve Ellcey <sje@cup.hp.com>
>
> > Sorry, you obviously spent some serious amount of time fixing this,
> > but I think this is just gross. It also would just hide the bug
> > mentioned above. I guess we should use -liberty's "safe-ctype.h"
> > instead.
>
> Hm, this seems to lead to some new problems. safe-ctype.h defines
> ISALNUM, ISALPHA, ISDIGIT, etc. (uppercase) and if I start including
> "safe-ctype.h" instead of <ctype.h>, then I collide with
> readline/chardefs.h in some files (like cli/cli-dump.c) because that
> file includes readline/readline.h which includes readline/chardefs.h
> which has its own definitions of ISALNUM, ISALPHA, ISDIGIT, etc.
>
> What to do? My best guess would be to have readline/chardefs.h not
> define these macros if they are already defined. But now we are
> reaching outside the gdb subdir.
Bleach! So that's not a viable option. I think it's time to find the
magic gcc option to turn the warning off. I mean
char *s = "...";
isalpha(*s);
is perfectly reasonable code and should not result in compiler
warnings. And I really don't like adding the casts you propose. To
me, a cast is an indication that something naughty is being done, and
that certainly isn't the case here.
Mark