This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Patch for isdigit/isalpha/etc. macro arguments


> 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]