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 15:33:50 -0700 (PDT)
> From: Steve Ellcey <sje@cup.hp.com>
> 
> While getting gdb to build on hppa hp-ux I ran into an interesting
> problem.  I was building with gcc which means that the gdb makefile will
> use -Wall and -Werror as options (a good thing in my opinion).  The
> problem I ran into is with the use of the isdigit, isalpha, isupper,
> etc.  macros.
> 
> With GCC 4.1.1 and the -Wall -Werror options, if you access an array
> with a char expression as the index instead of an int expression you get
> an error.

Sigh, another useless GCC warning that shouldn't be included in -Wall
if you'd ask me.  However...

> HP-UX does not put the int cast in the array reference in the macros, so
> if the argument to isdigit is not an int, you get an error (when using
> gcc -Wall -Werror).

This might indicate that HP-UX's isXXX() implementation is actually
broken, because it will cause out-of-bounds access for characters that
have the high bit set.

> Here is a patch to cast the arguments to isalpha, etc.  With this patch
> and my previous HP-UX specific patch I was able to build gdb on hppa
> hp-ux.
> 
> Is this patch OK to checkin?

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.

> 2007-04-06  Steve Ellcey  <sje@cup.hp.com>
> 
> 	* ada-exp.y: Cast idigit, islower, isupper, isalpha, etc. arg to int.
> 	* ada-lang.c: Ditto.
> 	* ada-lex.l: Ditto.
> 	* ada-typeprint.c: Ditto.
> 	* breakpoint.c: Ditto.
> 	* coffread.c: Ditto.
> 	* completer.c: Ditto.
> 	* cp-support.c: Ditto.
> 	* exec.c: Ditto.
> 	* expprint.c: Ditto.
> 	* gnu-v2-abi.c: Ditto.
> 	* infcmd.c: Ditto.
> 	* infrun.c: Ditto.
> 	* jv-exp.y: Ditto.
> 	* main.c: Ditto.
> 	* maint.c: Ditto.
> 	* minsyms.c: Ditto.
> 	* objc-exp.y: Ditto.
> 	* objc-lang.c: Ditto.
> 	* p-exp.y: Ditto.
> 	* p-typeprint.c: Ditto.
> 	* parse.c: Ditto.
> 	* remote-utils.c: Ditto.
> 	* remote.c: Ditto.
> 	* serial.c: Ditto.
> 	* stabsread.c: Ditto.
> 	* stack.c: Ditto.
> 	* symfile.c: Ditto.
> 	* symtab.c: Ditto.
> 	* thread.c: Ditto.
> 	* utils.c: Ditto.
> 	* cli/cli-cmds.c: Ditto.
> 	* cli/cli-decode.c: Ditto.
> 	* cli/cli-dump.c: Ditto.
> 	* cli/cli-script.c: Ditto.
> 	* cli/cli-setshow.c: Ditto.
> 	* mi/mi-cmd-var.c: Ditto.
> 	* mi/mi-parse.c: Ditto.
> 	* tui/tui-win.c: Ditto.
> 
> 
> Index: ada-exp.y
> ===================================================================
> RCS file: /cvs/src/src/gdb/ada-exp.y,v
> retrieving revision 1.20
> diff -p -u -r1.20 ada-exp.y
> --- ada-exp.y	9 Jan 2007 17:58:49 -0000	1.20
> +++ ada-exp.y	6 Apr 2007 22:06:44 -0000
> @@ -908,7 +908,7 @@ write_object_renaming (struct block *ori
>  	slice_state = LOWER_BOUND;
>        case 'S':
>  	suffix += 1;
> -	if (isdigit (*suffix))
> +	if (isdigit ((int) *suffix))
>  	  {
>  	    char *next;
>  	    long val = strtol (suffix, &next, 10);
> Index: ada-lang.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/ada-lang.c,v
> retrieving revision 1.95
> diff -p -u -r1.95 ada-lang.c
> --- ada-lang.c	29 Mar 2007 21:57:01 -0000	1.95
> +++ ada-lang.c	6 Apr 2007 22:06:45 -0000
> @@ -738,7 +738,7 @@ is_suppressed_name (const char *str)
>        if (suffix == NULL)
>          suffix = str + strlen (str);
>        for (p = suffix - 1; p != str; p -= 1)
> -        if (isupper (*p))
> +        if (isupper ((int) *p))
>            {
>              int i;
>              if (p[0] == 'X' && p[-1] != '_')
> @@ -840,7 +840,7 @@ ada_fold_name (const char *name)
>  static int
>  is_lower_alphanum (const char c)
>  {
> -  return (isdigit (c) || (isalpha (c) && islower (c)));
> +  return (isdigit ((int) c) || (isalpha ((int) c) && islower ((int) c)));
>  }
>  
>  /* Decode:
> @@ -883,10 +883,10 @@ ada_decode (const char *encoded)
>  
>    /* Remove trailing .{DIGIT}+ or ___{DIGIT}+ or __{DIGIT}+.  */
>    len0 = strlen (encoded);
> -  if (len0 > 1 && isdigit (encoded[len0 - 1]))
> +  if (len0 > 1 && isdigit ((int) encoded[len0 - 1]))
>      {
>        i = len0 - 2;
> -      while (i > 0 && isdigit (encoded[i]))
> +      while (i > 0 && isdigit ((int) encoded[i]))
>          i--;
>        if (i >= 0 && encoded[i] == '.')
>          len0 = i;
> @@ -910,7 +910,8 @@ ada_decode (const char *encoded)
>  
>    if (len0 > 1
>        && encoded[len0 - 1] == 'N'
> -      && (isdigit (encoded[len0 - 2]) || islower (encoded[len0 - 2])))
> +      && (isdigit ((int) encoded[len0 - 2])
> +	  || islower ((int) encoded[len0 - 2])))
>      len0--;
>  
>    /* Remove the ___X.* suffix if present.  Do not forget to verify that
> @@ -936,11 +937,11 @@ ada_decode (const char *encoded)
>    GROW_VECT (decoding_buffer, decoding_buffer_size, 2 * len0 + 1);
>    decoded = decoding_buffer;
>  
> -  if (len0 > 1 && isdigit (encoded[len0 - 1]))
> +  if (len0 > 1 && isdigit ((int) encoded[len0 - 1]))
>      {
>        i = len0 - 2;
> -      while ((i >= 0 && isdigit (encoded[i]))
> -             || (i >= 1 && encoded[i] == '_' && isdigit (encoded[i - 1])))
> +      while ((i >= 0 && isdigit ((int) encoded[i]))
> +             || (i >= 1 && encoded[i] == '_' && isdigit ((int) encoded[i - 1])))
>          i -= 1;
>        if (i > 1 && encoded[i] == '_' && encoded[i - 1] == '_')
>          len0 = i - 1;
> @@ -948,7 +949,7 @@ ada_decode (const char *encoded)
>          len0 = i;
>      }
>  
> -  for (i = 0, j = 0; i < len0 && !isalpha (encoded[i]); i += 1, j += 1)
> +  for (i = 0, j = 0; i < len0 && !isalpha ((int) encoded[i]); i += 1, j += 1)
>      decoded[j] = encoded[i];
>  
>    at_start_name = 1;
> @@ -962,7 +963,7 @@ ada_decode (const char *encoded)
>                int op_len = strlen (ada_opname_table[k].encoded);
>                if ((strncmp (ada_opname_table[k].encoded + 1, encoded + i + 1,
>                              op_len - 1) == 0)
> -                  && !isalnum (encoded[i + op_len]))
> +                  && !isalnum ((int) encoded[i + op_len]))
>                  {
>                    strcpy (decoded + j, ada_opname_table[k].decoded);
>                    at_start_name = 0;
> @@ -996,11 +997,11 @@ ada_decode (const char *encoded)
>           internally generated.  */
>  
>        if (len0 - i > 3 && encoded [i] == '_' && encoded[i+1] == 'E'
> -          && isdigit (encoded[i+2]))
> +          && isdigit ((int) encoded[i+2]))
>          {
>            int k = i + 3;
>  
> -          while (k < len0 && isdigit (encoded[k]))
> +          while (k < len0 && isdigit ((int) encoded[k]))
>              k++;
>  
>            if (k < len0
> @@ -1034,7 +1035,7 @@ ada_decode (const char *encoded)
>              i++;
>          }
>  
> -      if (encoded[i] == 'X' && i != 0 && isalnum (encoded[i - 1]))
> +      if (encoded[i] == 'X' && i != 0 && isalnum ((int) encoded[i - 1]))
>          {
>            do
>              i += 1;
> @@ -1060,7 +1061,7 @@ ada_decode (const char *encoded)
>    decoded[j] = '\000';
>  
>    for (i = 0; decoded[i] != '\0'; i += 1)
> -    if (isupper (decoded[i]) || decoded[i] == ' ')
> +    if (isupper ((int) decoded[i]) || decoded[i] == ' ')
>        goto Suppress;
>  
>    if (strcmp (decoded, encoded) == 0)
> @@ -3134,9 +3135,9 @@ encoded_ordered_before (char *N0, char *
>    else
>      {
>        int k0, k1;
> -      for (k0 = strlen (N0) - 1; k0 > 0 && isdigit (N0[k0]); k0 -= 1)
> +      for (k0 = strlen (N0) - 1; k0 > 0 && isdigit ((int) N0[k0]); k0 -= 1)
>          ;
> -      for (k1 = strlen (N1) - 1; k1 > 0 && isdigit (N1[k1]); k1 -= 1)
> +      for (k1 = strlen (N1) - 1; k1 > 0 && isdigit ((int) N1[k1]); k1 -= 1)
>          ;
>        if ((N0[k0] == '_' || N0[k0] == '$') && N0[k0 + 1] != '\000'
>            && (N1[k1] == '_' || N1[k1] == '$') && N1[k1 + 1] != '\000')
> @@ -3318,7 +3319,7 @@ get_selections (int *choices, int n_choi
>        char *args2;
>        int choice, j;
>  
> -      while (isspace (*args))
> +      while (isspace ((int) *args))
>          args += 1;
>        if (*args == '\0' && n_chosen == 0)
>          error_no_arg (_("one or more choice numbers"));
> @@ -4715,10 +4716,10 @@ is_name_suffix (const char *str)
>  
>    /* (__[0-9]+)?\.[0-9]+ */
>    matching = str;
> -  if (len > 3 && str[0] == '_' && str[1] == '_' && isdigit (str[2]))
> +  if (len > 3 && str[0] == '_' && str[1] == '_' && isdigit ((int) str[2]))
>      {
>        matching += 3;
> -      while (isdigit (matching[0]))
> +      while (isdigit ((int) matching[0]))
>          matching += 1;
>        if (matching[0] == '\0')
>          return 1;
> @@ -4727,7 +4728,7 @@ is_name_suffix (const char *str)
>    if (matching[0] == '.' || matching[0] == '$')
>      {
>        matching += 1;
> -      while (isdigit (matching[0]))
> +      while (isdigit ((int) matching[0]))
>          matching += 1;
>        if (matching[0] == '\0')
>          return 1;
> @@ -4737,7 +4738,7 @@ is_name_suffix (const char *str)
>    if (len > 3 && str[0] == '_' && str[1] == '_' && str[2] == '_')
>      {
>        matching = str + 3;
> -      while (isdigit (matching[0]))
> +      while (isdigit ((int) matching[0]))
>          matching += 1;
>        if (matching[0] == '\0')
>          return 1;
> @@ -4761,10 +4762,10 @@ is_name_suffix (const char *str)
>  #endif
>  
>    /* _E[0-9]+[bs]$ */
> -  if (len > 3 && str[0] == '_' && str [1] == 'E' && isdigit (str[2]))
> +  if (len > 3 && str[0] == '_' && str [1] == 'E' && isdigit ((int) str[2]))
>      {
>        matching = str + 3;
> -      while (isdigit (matching[0]))
> +      while (isdigit ((int) matching[0]))
>          matching += 1;
>        if ((matching[0] == 'b' || matching[0] == 's')
>            && matching [1] == '\0')
> @@ -4812,17 +4813,17 @@ is_name_suffix (const char *str)
>              return 1;
>            return 0;
>          }
> -      if (!isdigit (str[2]))
> +      if (!isdigit ((int) str[2]))
>          return 0;
>        for (k = 3; str[k] != '\0'; k += 1)
> -        if (!isdigit (str[k]) && str[k] != '_')
> +        if (!isdigit ((int) str[k]) && str[k] != '_')
>            return 0;
>        return 1;
>      }
> -  if (str[0] == '$' && isdigit (str[1]))
> +  if (str[0] == '$' && isdigit ((int) str[1]))
>      {
>        for (k = 2; str[k] != '\0'; k += 1)
> -        if (!isdigit (str[k]) && str[k] != '_')
> +        if (!isdigit ((int) str[k]) && str[k] != '_')
>            return 0;
>        return 1;
>      }
> @@ -4847,7 +4848,7 @@ is_dot_digits_suffix (const char *str)
>      return 0;
>  
>    str++;
> -  while (isdigit (str[0]))
> +  while (isdigit ((int) str[0]))
>      str++;
>    return (str[0] == '\0');
>  }
> @@ -4864,7 +4865,7 @@ is_valid_name_for_wild_match (const char
>    int i;
>  
>    for (i=0; decoded_name[i] != '\0'; i++)
> -    if (isalpha (decoded_name[i]) && !islower (decoded_name[i]))
> +    if (isalpha ((int) decoded_name[i]) && !islower ((int) decoded_name[i]))
>        return 0;
>  
>    return 1;
> @@ -4947,14 +4948,14 @@ wild_match (const char *patn0, int patn_
>          return 0;
>        if (name[0] == '_')
>          {
> -          if (!islower (name[2]))
> +          if (!islower ((int) name[2]))
>              return 0;
>            name += 2;
>            name_len -= 2;
>          }
>        else
>          {
> -          if (!islower (name[1]))
> +          if (!islower ((int) name[1]))
>              return 0;
>            name += 1;
>            name_len -= 1;
> @@ -5240,7 +5241,7 @@ ada_tag_name_1 (void *args0)
>      return 0;
>    read_memory_string (value_as_address (val), name, sizeof (name) - 1);
>    for (p = name; *p != '\0'; p += 1)
> -    if (isalpha (*p))
> +    if (isalpha ((int) *p))
>        *p = tolower (*p);
>    args->name = name;
>    return 0;
> @@ -5275,7 +5276,7 @@ ada_tag_name_2 (struct tag_args *args)
>      return 0;
>    read_memory_string (value_as_address (val), name, sizeof (name) - 1);
>    for (p = name; *p != '\0'; p += 1)
> -    if (isalpha (*p))
> +    if (isalpha ((int) *p))
>        *p = tolower (*p);
>    args->name = name;
>    return 0;
> @@ -5449,14 +5450,14 @@ ada_scan_number (const char str[], int k
>  {
>    ULONGEST RU;
>  
> -  if (!isdigit (str[k]))
> +  if (!isdigit ((int) str[k]))
>      return 0;
>  
>    /* Do it the hard way so as not to make any assumption about
>       the relationship of unsigned long (%lu scan format code) and
>       LONGEST.  */
>    RU = 0;
> -  while (isdigit (str[k]))
> +  while (isdigit ((int) str[k]))
>      {
>        RU = RU * 10 + (str[k] - '0');
>        k += 1;
> @@ -6116,10 +6117,10 @@ field_alignment (struct type *type, int 
>    int len = (name == NULL) ? 0 : strlen (name);
>    int align_offset;
>  
> -  if (!isdigit (name[len - 1]))
> +  if (!isdigit ((int) name[len - 1]))
>      return 1;
>  
> -  if (isdigit (name[len - 2]))
> +  if (isdigit ((int) name[len - 2]))
>      align_offset = len - 2;
>    else
>      align_offset = len - 1;
> @@ -7228,7 +7229,7 @@ ada_enum_name (const char *name)
>      {
>        while ((tmp = strstr (name, "__")) != NULL)
>          {
> -          if (isdigit (tmp[2]))
> +          if (isdigit ((int) tmp[2]))
>              break;
>            else
>              name = tmp + 2;
> @@ -9532,7 +9533,7 @@ ada_get_next_arg (char **argsp)
>  
>    /* Skip any leading white space.  */
>  
> -  while (isspace (*args))
> +  while (isspace ((int) *args))
>      args++;
>  
>    if (args[0] == '\0')
> @@ -9541,7 +9542,7 @@ ada_get_next_arg (char **argsp)
>    /* Find the end of the current argument.  */
>  
>    end = args;
> -  while (*end != '\0' && !isspace (*end))
> +  while (*end != '\0' && !isspace ((int) *end))
>      end++;
>  
>    /* Adjust ARGSP to point to the start of the next argument.  */
> @@ -9576,7 +9577,7 @@ catch_ada_exception_command_split (char 
>    /* Check that we do not have any more arguments.  Anything else
>       is unexpected.  */
>  
> -  while (isspace (*args))
> +  while (isspace ((int) *args))
>      args++;
>  
>    if (args[0] != '\0')
> @@ -9797,7 +9798,7 @@ ada_decode_assert_location (char *args, 
>  
>    if (args != NULL)
>      {
> -      while (isspace (*args))
> +      while (isspace ((int) *args))
>          args++;
>        if (*args != '\0')
>          error (_("Junk at end of arguments."));
> Index: ada-lex.l
> ===================================================================
> RCS file: /cvs/src/src/gdb/ada-lex.l,v
> retrieving revision 1.17
> diff -p -u -r1.17 ada-lex.l
> --- ada-lex.l	9 Jan 2007 17:58:49 -0000	1.17
> +++ ada-lex.l	6 Apr 2007 22:06:45 -0000
> @@ -330,7 +330,7 @@ processInt (const char *base0, const cha
>    result = strtoulst (num0, (const char **) &trailer, base);
>    if (errno == ERANGE)
>      error (_("Integer literal out of range"));
> -  if (isxdigit(*trailer))
> +  if (isxdigit((int) *trailer))
>      error (_("Invalid digit `%c' in based literal"), *trailer);
>  
>    while (exp > 0)
> @@ -406,12 +406,12 @@ processId (const char *name0, int len)
>    int i0, i;
>    struct stoken result;
>  
> -  while (len > 0 && isspace (name0[len-1]))
> +  while (len > 0 && isspace ((int) name0[len-1]))
>      len -= 1;
>    i = i0 = 0;
>    while (i0 < len)
>      {
> -      if (isalnum (name0[i0]))
> +      if (isalnum ((int) name0[i0]))
>  	{
>  	  name[i] = tolower (name0[i0]);
>  	  i += 1; i0 += 1;
> @@ -510,9 +510,9 @@ find_dot_all (const char *str)
>  	  int i0 = i;
>  	  do
>  	    i += 1;
> -	  while (isspace (str[i]));
> +	  while (isspace ((int) str[i]));
>  	  if (strncmp (str+i, "all", 3) == 0
> -	      && ! isalnum (str[i+3]) && str[i+3] != '_')
> +	      && ! isalnum ((int) str[i+3]) && str[i+3] != '_')
>  	    return i0;
>  	}
>      }
> Index: ada-typeprint.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/ada-typeprint.c,v
> retrieving revision 1.15
> diff -p -u -r1.15 ada-typeprint.c
> --- ada-typeprint.c	9 Jan 2007 17:58:49 -0000	1.15
> +++ ada-typeprint.c	6 Apr 2007 22:06:45 -0000
> @@ -95,7 +95,7 @@ decoded_type_name (struct type *type)
>        if (s == name_buffer)
>  	return name_buffer;
>  
> -      if (!islower (s[1]))
> +      if (!islower ((int) s[1]))
>  	return NULL;
>  
>        for (s = q = name_buffer; *s != '\0'; q += 1)
> Index: breakpoint.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/breakpoint.c,v
> retrieving revision 1.243
> diff -p -u -r1.243 breakpoint.c
> --- breakpoint.c	27 Mar 2007 23:01:00 -0000	1.243
> +++ breakpoint.c	6 Apr 2007 22:06:45 -0000
> @@ -425,7 +425,7 @@ get_number_trailer (char **pp, int trail
>        char *start = ++p;
>        struct value *val;
>  
> -      while (isalnum (*p) || *p == '_')
> +      while (isalnum ((int) *p) || *p == '_')
>  	p++;
>        varname = (char *) alloca (p - start + 1);
>        strncpy (varname, start, p - start);
> @@ -457,14 +457,14 @@ get_number_trailer (char **pp, int trail
>        else
>  	retval = atoi (*pp);
>      }
> -  if (!(isspace (*p) || *p == '\0' || *p == trailer))
> +  if (!(isspace ((int) *p) || *p == '\0' || *p == trailer))
>      {
>        /* Trailing junk: return 0 and let caller print error msg. */
> -      while (!(isspace (*p) || *p == '\0' || *p == trailer))
> +      while (!(isspace ((int) *p) || *p == '\0' || *p == trailer))
>  	++p;
>        retval = 0;
>      }
> -  while (isspace (*p))
> +  while (isspace ((int) *p))
>      p++;
>    *pp = p;
>    return retval;
> @@ -5145,7 +5145,7 @@ parse_breakpoint_sals (char **address,
>    /* If no arg given, or if first arg is 'if ', use the default
>       breakpoint. */
>    if ((*address) == NULL
> -      || (strncmp ((*address), "if", 2) == 0 && isspace ((*address)[2])))
> +      || (strncmp ((*address), "if", 2) == 0 && isspace ((int) (*address)[2])))
>      {
>        if (default_breakpoint_valid)
>  	{
> @@ -5710,7 +5710,7 @@ stopin_command (char *arg, int from_tty)
>        if (hasColon)
>  	badInput = (*argptr != ':');	/* Not a class::method */
>        else
> -	badInput = isdigit (*arg);	/* a simple line number */
> +	badInput = isdigit ((int) *arg);	/* a simple line number */
>      }
>  
>    if (badInput)
> @@ -5742,7 +5742,7 @@ stopat_command (char *arg, int from_tty)
>        if (hasColon)
>  	badInput = (*argptr == ':');	/* we have class::method */
>        else
> -	badInput = !isdigit (*arg);	/* not a line number */
> +	badInput = !isdigit ((int) *arg);	/* not a line number */
>      }
>  
>    if (badInput)
> @@ -6145,7 +6145,7 @@ ep_skip_leading_whitespace (char **s)
>  {
>    if ((s == NULL) || (*s == NULL))
>      return;
> -  while (isspace (**s))
> +  while (isspace ((int) **s))
>      *s += 1;
>  }
>  
> @@ -6169,7 +6169,7 @@ ep_find_event_name_end (char *arg)
>       anything else delimites the token. */
>    while (*s != '\0')
>      {
> -      if (!isalnum (*s) && (*s != '_'))
> +      if (!isalnum ((int) *s) && (*s != '_'))
>  	break;
>        event_name_end = s;
>        s++;
> @@ -6192,7 +6192,7 @@ ep_parse_optional_if_clause (char **arg)
>  {
>    char *cond_string;
>  
> -  if (((*arg)[0] != 'i') || ((*arg)[1] != 'f') || !isspace ((*arg)[2]))
> +  if (((*arg)[0] != 'i') || ((*arg)[1] != 'f') || !isspace ((int) (*arg)[2]))
>      return NULL;
>  
>    /* Skip the "if" keyword. */
> @@ -6227,13 +6227,13 @@ ep_parse_optional_filename (char **arg)
>    int i;
>    char c;
>  
> -  if ((*arg_p == '\0') || isspace (*arg_p))
> +  if ((*arg_p == '\0') || isspace ((int) *arg_p))
>      return NULL;
>  
>    for (i = 0;; i++)
>      {
>        c = *arg_p;
> -      if (isspace (c))
> +      if (isspace ((int) c))
>  	c = '\0';
>        filename[i] = c;
>        if (c == '\0')
> @@ -6269,7 +6269,7 @@ catch_fork_command_1 (catch_fork_kind fo
>       First, check if there's an if clause. */
>    cond_string = ep_parse_optional_if_clause (&arg);
>  
> -  if ((*arg != '\0') && !isspace (*arg))
> +  if ((*arg != '\0') && !isspace ((int) *arg))
>      error (_("Junk at end of arguments."));
>  
>    /* If this target supports it, create a fork or vfork catchpoint
> @@ -6302,7 +6302,7 @@ catch_exec_command_1 (char *arg, int tem
>       First, check if there's an if clause. */
>    cond_string = ep_parse_optional_if_clause (&arg);
>  
> -  if ((*arg != '\0') && !isspace (*arg))
> +  if ((*arg != '\0') && !isspace ((int) *arg))
>      error (_("Junk at end of arguments."));
>  
>    /* If this target supports it, create an exec catchpoint
> @@ -6342,7 +6342,7 @@ catch_load_command_1 (char *arg, int tem
>        cond_string = ep_parse_optional_if_clause (&arg);
>      }
>  
> -  if ((*arg != '\0') && !isspace (*arg))
> +  if ((*arg != '\0') && !isspace ((int) *arg))
>      error (_("Junk at end of arguments."));
>  
>    /* Create a load breakpoint that only triggers when a load of
> @@ -6384,7 +6384,7 @@ catch_unload_command_1 (char *arg, int t
>        cond_string = ep_parse_optional_if_clause (&arg);
>      }
>  
> -  if ((*arg != '\0') && !isspace (*arg))
> +  if ((*arg != '\0') && !isspace ((int) *arg))
>      error (_("Junk at end of arguments."));
>  
>    /* Create an unload breakpoint that only triggers when an unload of
> @@ -6533,7 +6533,7 @@ catch_exception_command_1 (enum exceptio
>  
>    cond_string = ep_parse_optional_if_clause (&arg);
>  
> -  if ((*arg != '\0') && !isspace (*arg))
> +  if ((*arg != '\0') && !isspace ((int) *arg))
>      error (_("Junk at end of arguments."));
>  
>    if ((ex_event != EX_EVENT_THROW) &&
> Index: coffread.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/coffread.c,v
> retrieving revision 1.66
> diff -p -u -r1.66 coffread.c
> --- coffread.c	9 Jan 2007 17:58:50 -0000	1.66
> +++ coffread.c	6 Apr 2007 22:06:45 -0000
> @@ -220,7 +220,7 @@ coff_locate_sections (bfd *abfd, asectio
>        /* We can have multiple .stab sections if linked with
>           --split-by-reloc.  */
>        for (s = name + sizeof ".stab" - 1; *s != '\0'; s++)
> -	if (!isdigit (*s))
> +	if (!isdigit ((int) *s))
>  	  break;
>        if (*s == '\0')
>  	{
> Index: completer.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/completer.c,v
> retrieving revision 1.18
> diff -p -u -r1.18 completer.c
> --- completer.c	9 Jan 2007 17:58:50 -0000	1.18
> +++ completer.c	6 Apr 2007 22:06:45 -0000
> @@ -437,7 +437,7 @@ complete_line (const char *text, char *l
>        /* lookup_cmd_1 advances p up to the first ambiguous thing, but
>  	 doesn't advance over that thing itself.  Do so now.  */
>        q = p;
> -      while (*q && (isalnum (*q) || *q == '-' || *q == '_'))
> +      while (*q && (isalnum ((int) *q) || *q == '-' || *q == '_'))
>  	++q;
>        if (q != tmp_command + point)
>  	{
> @@ -543,7 +543,7 @@ complete_line (const char *text, char *l
>  	      q = p;
>  	      while (q > tmp_command)
>  		{
> -		  if (isalnum (q[-1]) || q[-1] == '-' || q[-1] == '_')
> +		  if (isalnum ((int) q[-1]) || q[-1] == '-' || q[-1] == '_')
>  		    --q;
>  		  else
>  		    break;
> Index: cp-support.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/cp-support.c,v
> retrieving revision 1.23
> diff -p -u -r1.23 cp-support.c
> --- cp-support.c	21 Jan 2007 16:55:49 -0000	1.23
> +++ cp-support.c	6 Apr 2007 22:06:45 -0000
> @@ -513,7 +513,7 @@ cp_find_first_component_aux (const char 
>  	      && strncmp (name + index, "operator", LENGTH_OF_OPERATOR) == 0)
>  	    {
>  	      index += LENGTH_OF_OPERATOR;
> -	      while (isspace(name[index]))
> +	      while (isspace((int) name[index]))
>  		++index;
>  	      switch (name[index])
>  		{
> Index: exec.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/exec.c,v
> retrieving revision 1.65
> diff -p -u -r1.65 exec.c
> --- exec.c	9 Feb 2007 20:11:47 -0000	1.65
> +++ exec.c	6 Apr 2007 22:06:45 -0000
> @@ -645,7 +645,7 @@ set_section_command (char *args, int fro
>      error (_("Must specify section name and its virtual address"));
>  
>    /* Parse out section name */
> -  for (secname = args; !isspace (*args); args++);
> +  for (secname = args; !isspace ((int) *args); args++);
>    seclen = args - secname;
>  
>    /* Parse out new virtual address */
> Index: expprint.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/expprint.c,v
> retrieving revision 1.26
> diff -p -u -r1.26 expprint.c
> --- expprint.c	9 Jan 2007 17:58:50 -0000	1.26
> +++ expprint.c	6 Apr 2007 22:06:45 -0000
> @@ -809,7 +809,7 @@ dump_raw_expression (struct expression *
>  	   eltscan++)
>  	{
>  	  fprintf_filtered (stream, "%c",
> -			    isprint (*eltscan) ? (*eltscan & 0xFF) : '.');
> +			    isprint ((int) (*eltscan ? *eltscan & 0xFF : '.')));
>  	}
>        fprintf_filtered (stream, "\n");
>      }
> Index: gnu-v2-abi.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/gnu-v2-abi.c,v
> retrieving revision 1.24
> diff -p -u -r1.24 gnu-v2-abi.c
> --- gnu-v2-abi.c	9 Jan 2007 17:58:51 -0000	1.24
> +++ gnu-v2-abi.c	6 Apr 2007 22:06:45 -0000
> @@ -53,7 +53,7 @@ static enum ctor_kinds
>  gnuv2_is_constructor_name (const char *name)
>  {
>    if ((name[0] == '_' && name[1] == '_'
> -       && (isdigit (name[2]) || strchr ("Qt", name[2])))
> +       && (isdigit ((int) name[2]) || strchr ("Qt", name[2])))
>        || strncmp (name, "__ct__", 6) == 0)
>      return complete_object_ctor;
>    else
> Index: infcmd.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/infcmd.c,v
> retrieving revision 1.151
> diff -p -u -r1.151 infcmd.c
> --- infcmd.c	27 Mar 2007 23:01:00 -0000	1.151
> +++ infcmd.c	6 Apr 2007 22:06:46 -0000
> @@ -1701,7 +1701,7 @@ registers_info (char *addr_exp, int fpre
>        const char *end;
>  
>        /* Keep skipping leading white space.  */
> -      if (isspace ((*addr_exp)))
> +      if (isspace ((int) *addr_exp))
>  	{
>  	  addr_exp++;
>  	  continue;
> @@ -1711,12 +1711,12 @@ registers_info (char *addr_exp, int fpre
>           resembling a register following it.  */
>        if (addr_exp[0] == '$')
>  	addr_exp++;
> -      if (isspace ((*addr_exp)) || (*addr_exp) == '\0')
> +      if (isspace ((int) *addr_exp) || *addr_exp == '\0')
>  	error (_("Missing register name"));
>  
>        /* Find the start/end of this register name/num/group.  */
>        start = addr_exp;
> -      while ((*addr_exp) != '\0' && !isspace ((*addr_exp)))
> +      while ((*addr_exp) != '\0' && !isspace ((int) *addr_exp))
>  	addr_exp++;
>        end = addr_exp;
>        
> Index: infrun.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/infrun.c,v
> retrieving revision 1.225
> diff -p -u -r1.225 infrun.c
> --- infrun.c	29 Mar 2007 07:35:39 -0000	1.225
> +++ infrun.c	6 Apr 2007 22:06:46 -0000
> @@ -3350,7 +3350,7 @@ handle_command (char *args, int from_tty
>    while (*argv != NULL)
>      {
>        wordlen = strlen (*argv);
> -      for (digits = 0; isdigit ((*argv)[digits]); digits++)
> +      for (digits = 0; isdigit ((int) (*argv)[digits]); digits++)
>  	{;
>  	}
>        allsigs = 0;
> Index: jv-exp.y
> ===================================================================
> RCS file: /cvs/src/src/gdb/jv-exp.y,v
> retrieving revision 1.24
> diff -p -u -r1.24 jv-exp.y
> --- jv-exp.y	9 Jan 2007 17:58:51 -0000	1.24
> +++ jv-exp.y	6 Apr 2007 22:06:46 -0000
> @@ -724,7 +724,7 @@ parse_number (p, len, parsed_float, puti
>  
>        if (c == 'f' || c == 'F')
>  	putithere->typed_val_float.type = builtin_type_float;
> -      else if (isdigit (c) || c == '.' || c == 'd' || c == 'D')
> +      else if (isdigit ((int) c) || c == '.' || c == 'd' || c == 'D')
>  	putithere->typed_val_float.type = builtin_type_double;
>        else
>  	return ERROR;
> Index: main.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/main.c,v
> retrieving revision 1.62
> diff -p -u -r1.62 main.c
> --- main.c	9 Jan 2007 21:34:29 -0000	1.62
> +++ main.c	6 Apr 2007 22:06:46 -0000
> @@ -736,7 +736,7 @@ extern int gdbtk_test (char *);
>  	 If its first character is a digit, try attach first
>  	 and then corefile.  Otherwise try corefile first. */
>  
> -      if (isdigit (corearg[0]))
> +      if (isdigit ((int) corearg[0]))
>  	{
>  	  if (catch_command_errors (attach_command, corearg, 
>  				    !batch, RETURN_MASK_ALL) == 0)
> Index: maint.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/maint.c,v
> retrieving revision 1.59
> diff -p -u -r1.59 maint.c
> --- maint.c	9 Jan 2007 17:58:52 -0000	1.59
> +++ maint.c	6 Apr 2007 22:06:46 -0000
> @@ -455,14 +455,14 @@ maintenance_translate_address (char *arg
>    sect = NULL;
>    p = arg;
>  
> -  if (!isdigit (*p))
> +  if (!isdigit ((int) *p))
>      {				/* See if we have a valid section name */
> -      while (*p && !isspace (*p))	/* Find end of section name */
> +      while (*p && !isspace ((int) *p))	/* Find end of section name */
>  	p++;
>        if (*p == '\000')		/* End of command? */
>  	error (_("Need to specify <section-name> and <address>"));
>        *p++ = '\000';
> -      while (isspace (*p))
> +      while (isspace ((int) *p))
>  	p++;			/* Skip whitespace */
>  
>        ALL_OBJFILES (objfile)
> Index: minsyms.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/minsyms.c,v
> retrieving revision 1.49
> diff -p -u -r1.49 minsyms.c
> --- minsyms.c	9 Jan 2007 22:14:35 -0000	1.49
> +++ minsyms.c	6 Apr 2007 22:06:46 -0000
> @@ -83,7 +83,7 @@ msymbol_hash_iw (const char *string)
>    unsigned int hash = 0;
>    while (*string && *string != '(')
>      {
> -      while (isspace (*string))
> +      while (isspace ((int) *string))
>  	++string;
>        if (*string && *string != '(')
>  	{
> Index: objc-exp.y
> ===================================================================
> RCS file: /cvs/src/src/gdb/objc-exp.y,v
> retrieving revision 1.23
> diff -p -u -r1.23 objc-exp.y
> --- objc-exp.y	9 Jan 2007 17:58:55 -0000	1.23
> +++ objc-exp.y	6 Apr 2007 22:06:46 -0000
> @@ -1034,7 +1034,7 @@ parse_number (p, len, parsed_float, puti
>  	putithere->typed_val_float.type = builtin_type_float;
>        else if (c == 'l')
>  	putithere->typed_val_float.type = builtin_type_long_double;
> -      else if (isdigit (c) || c == '.')
> +      else if (isdigit ((int) c) || c == '.')
>  	putithere->typed_val_float.type = builtin_type_double;
>        else
>  	return ERROR;
> Index: objc-lang.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/objc-lang.c,v
> retrieving revision 1.52
> diff -p -u -r1.52 objc-lang.c
> --- objc-lang.c	9 Jan 2007 17:58:55 -0000	1.52
> +++ objc-lang.c	6 Apr 2007 22:06:46 -0000
> @@ -1131,23 +1131,23 @@ parse_selector (char *method, char **sel
>  
>    s1 = method;
>  
> -  while (isspace (*s1))
> +  while (isspace ((int) *s1))
>      s1++;
>    if (*s1 == '\'') 
>      {
>        found_quote = 1;
>        s1++;
>      }
> -  while (isspace (*s1))
> +  while (isspace ((int) *s1))
>      s1++;
>     
>    nselector = s1;
>    s2 = s1;
>  
>    for (;;) {
> -    if (isalnum (*s2) || (*s2 == '_') || (*s2 == ':'))
> +    if (isalnum ((int) *s2) || (*s2 == '_') || (*s2 == ':'))
>        *s1++ = *s2;
> -    else if (isspace (*s2))
> +    else if (isspace ((int) *s2))
>        ;
>      else if ((*s2 == '\0') || (*s2 == '\''))
>        break;
> @@ -1157,13 +1157,13 @@ parse_selector (char *method, char **sel
>    }
>    *s1++ = '\0';
>  
> -  while (isspace (*s2))
> +  while (isspace ((int) *s2))
>      s2++;
>    if (found_quote)
>      {
>        if (*s2 == '\'') 
>  	s2++;
> -      while (isspace (*s2))
> +      while (isspace ((int) *s2))
>  	s2++;
>      }
>  
> @@ -1193,20 +1193,20 @@ parse_method (char *method, char *type, 
>    
>    s1 = method;
>  
> -  while (isspace (*s1))
> +  while (isspace ((int) *s1))
>      s1++;
>    if (*s1 == '\'') 
>      {
>        found_quote = 1;
>        s1++;
>      }
> -  while (isspace (*s1))
> +  while (isspace ((int) *s1))
>      s1++;
>    
>    if ((s1[0] == '+') || (s1[0] == '-'))
>      ntype = *s1++;
>  
> -  while (isspace (*s1))
> +  while (isspace ((int) *s1))
>      s1++;
>  
>    if (*s1 != '[')
> @@ -1214,20 +1214,20 @@ parse_method (char *method, char *type, 
>    s1++;
>  
>    nclass = s1;
> -  while (isalnum (*s1) || (*s1 == '_'))
> +  while (isalnum ((int) *s1) || (*s1 == '_'))
>      s1++;
>    
>    s2 = s1;
> -  while (isspace (*s2))
> +  while (isspace ((int) *s2))
>      s2++;
>    
>    if (*s2 == '(')
>      {
>        s2++;
> -      while (isspace (*s2))
> +      while (isspace ((int) *s2))
>  	s2++;
>        ncategory = s2;
> -      while (isalnum (*s2) || (*s2 == '_'))
> +      while (isalnum ((int) *s2) || (*s2 == '_'))
>  	s2++;
>        *s2++ = '\0';
>      }
> @@ -1239,9 +1239,9 @@ parse_method (char *method, char *type, 
>    s1 = s2;
>  
>    for (;;) {
> -    if (isalnum (*s2) || (*s2 == '_') || (*s2 == ':'))
> +    if (isalnum ((int) *s2) || (*s2 == '_') || (*s2 == ':'))
>        *s1++ = *s2;
> -    else if (isspace (*s2))
> +    else if (isspace ((int) *s2))
>        ;
>      else if (*s2 == ']')
>        break;
> @@ -1252,14 +1252,14 @@ parse_method (char *method, char *type, 
>    *s1++ = '\0';
>    s2++;
>  
> -  while (isspace (*s2))
> +  while (isspace ((int) *s2))
>      s2++;
>    if (found_quote)
>      {
>        if (*s2 != '\'') 
>  	return NULL;
>        s2++;
> -      while (isspace (*s2))
> +      while (isspace ((int) *s2))
>  	s2++;
>      }
>  
> Index: p-exp.y
> ===================================================================
> RCS file: /cvs/src/src/gdb/p-exp.y,v
> retrieving revision 1.34
> diff -p -u -r1.34 p-exp.y
> --- p-exp.y	9 Jan 2007 17:58:55 -0000	1.34
> +++ p-exp.y	6 Apr 2007 22:06:46 -0000
> @@ -809,7 +809,7 @@ parse_number (p, len, parsed_float, puti
>  	putithere->typed_val_float.type = builtin_type_float;
>        else if (c == 'l')
>  	putithere->typed_val_float.type = builtin_type_long_double;
> -      else if (isdigit (c) || c == '.')
> +      else if (isdigit ((int) c) || c == '.')
>  	putithere->typed_val_float.type = builtin_type_double;
>        else
>  	return ERROR;
> @@ -1072,8 +1072,9 @@ yylex ()
>    if (explen > 2)
>      for (i = 0; i < sizeof (tokentab3) / sizeof (tokentab3[0]); i++)
>        if (strncasecmp (tokstart, tokentab3[i].operator, 3) == 0
> -          && (!isalpha (tokentab3[i].operator[0]) || explen == 3
> -              || (!isalpha (tokstart[3]) && !isdigit (tokstart[3]) && tokstart[3] != '_')))
> +          && (!isalpha ((int) tokentab3[i].operator[0]) || explen == 3
> +              || (!isalpha ((int) tokstart[3])
> +		  && !isdigit ((int) tokstart[3]) && tokstart[3] != '_')))
>          {
>            lexptr += 3;
>            yylval.opcode = tokentab3[i].opcode;
> @@ -1084,8 +1085,9 @@ yylex ()
>    if (explen > 1)
>    for (i = 0; i < sizeof (tokentab2) / sizeof (tokentab2[0]); i++)
>        if (strncasecmp (tokstart, tokentab2[i].operator, 2) == 0
> -          && (!isalpha (tokentab2[i].operator[0]) || explen == 2
> -              || (!isalpha (tokstart[2]) && !isdigit (tokstart[2]) && tokstart[2] != '_')))
> +          && (!isalpha ((int) tokentab2[i].operator[0]) || explen == 2
> +              || (!isalpha ((int) tokstart[2])
> +		  && !isdigit ((int) tokstart[2]) && tokstart[2] != '_')))
>          {
>            lexptr += 2;
>            yylval.opcode = tokentab2[i].opcode;
> Index: p-typeprint.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/p-typeprint.c,v
> retrieving revision 1.18
> diff -p -u -r1.18 p-typeprint.c
> --- p-typeprint.c	9 Jan 2007 17:58:55 -0000	1.18
> +++ p-typeprint.c	6 Apr 2007 22:06:46 -0000
> @@ -157,9 +157,9 @@ pascal_type_print_method_args (char *phy
>        char *argname;
>        fputs_filtered (" (", stream);
>        /* we must demangle this */
> -      while (isdigit (physname[0]))
> +      while (isdigit ((int) physname[0]))
>  	{
> -	  while (isdigit (physname[len]))
> +	  while (isdigit ((int) physname[len]))
>  	    {
>  	      len++;
>  	    }
> Index: parse.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/parse.c,v
> retrieving revision 1.57
> diff -p -u -r1.57 parse.c
> --- parse.c	27 Feb 2007 19:46:04 -0000	1.57
> +++ parse.c	6 Apr 2007 22:06:46 -0000
> @@ -641,10 +641,10 @@ parse_nested_classes_for_hpacc (char *na
>        /* Get to the end of the next namespace or class spec. */
>        /* If we're looking at some non-token, fail immediately */
>        start = p;
> -      if (!(isalpha (*p) || *p == '$' || *p == '_'))
> +      if (!(isalpha ((int) *p) || *p == '$' || *p == '_'))
>  	return (struct symbol *) NULL;
>        p++;
> -      while (*p && (isalnum (*p) || *p == '$' || *p == '_'))
> +      while (*p && (isalnum ((int) *p) || *p == '$' || *p == '_'))
>  	p++;
>  
>        if (*p == '<')
> @@ -667,7 +667,7 @@ parse_nested_classes_for_hpacc (char *na
>  	p++;
>  
>        /* Done with tokens? */
> -      if (!*p || !(isalpha (*p) || *p == '$' || *p == '_'))
> +      if (!*p || !(isalpha ((int) *p) || *p == '$' || *p == '_'))
>  	done = 1;
>  
>        tmp = (char *) alloca (prefix_len + end - start + 3);
> Index: remote-utils.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/remote-utils.c,v
> retrieving revision 1.21
> diff -p -u -r1.21 remote-utils.c
> --- remote-utils.c	9 Jan 2007 17:58:56 -0000	1.21
> +++ remote-utils.c	6 Apr 2007 22:06:47 -0000
> @@ -113,10 +113,10 @@ sr_scan_args (char *proto, char *args)
>      return;
>  
>    /* scan off white space.  */
> -  for (p = args; isspace (*p); ++p);;
> +  for (p = args; isspace ((int) *p); ++p);;
>  
>    /* find end of device name.  */
> -  for (q = p; *q != '\0' && !isspace (*q); ++q);;
> +  for (q = p; *q != '\0' && !isspace ((int) *q); ++q);;
>  
>    /* check for missing or empty device name.  */
>    CHECKDONE (p, q);
> @@ -137,7 +137,7 @@ sr_scan_args (char *proto, char *args)
>    sr_set_debug (n);
>  
>    /* scan off remaining white space.  */
> -  for (p = q; isspace (*p); ++p);;
> +  for (p = q; isspace ((int) *p); ++p);;
>  
>    /* if not end of string, then there's unrecognized junk. */
>    if (*p != '\0')
> Index: remote.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/remote.c,v
> retrieving revision 1.247
> diff -p -u -r1.247 remote.c
> --- remote.c	27 Mar 2007 19:11:10 -0000	1.247
> +++ remote.c	6 Apr 2007 22:06:47 -0000
> @@ -811,7 +811,7 @@ packet_check_result (const char *buf)
>        /* The stub recognized the packet request.  Check that the
>  	 operation succeeded.  */
>        if (buf[0] == 'E'
> -	  && isxdigit (buf[1]) && isxdigit (buf[2])
> +	  && isxdigit ((int) buf[1]) && isxdigit ((int) buf[2])
>  	  && buf[3] == '\0')
>  	/* "Enn"  - definitly an error.  */
>  	return PACKET_ERROR;
> @@ -4342,7 +4342,7 @@ remote_read_bytes (CORE_ADDR memaddr, gd
>        getpkt (&rs->buf, &rs->buf_size, 0);
>  
>        if (rs->buf[0] == 'E'
> -	  && isxdigit (rs->buf[1]) && isxdigit (rs->buf[2])
> +	  && isxdigit ((int) rs->buf[1]) && isxdigit ((int) rs->buf[2])
>  	  && rs->buf[3] == '\0')
>  	{
>  	  /* There is no correspondance between what the remote
> @@ -5716,7 +5716,7 @@ remote_xfer_partial (struct target_ops *
>    while (annex[i] && (i < (get_remote_packet_size () - 8)))
>      {
>        /* Bad caller may have sent forbidden characters.  */
> -      gdb_assert (isprint (annex[i]) && annex[i] != '$' && annex[i] != '#');
> +      gdb_assert (isprint ((int) annex[i]) && annex[i] != '$' && annex[i] != '#');
>        *p2++ = annex[i];
>        i++;
>      }
> @@ -5779,7 +5779,7 @@ remote_rcmd (char *command,
>        if (strcmp (buf, "OK") == 0)
>  	break;
>        if (strlen (buf) == 3 && buf[0] == 'E'
> -	  && isdigit (buf[1]) && isdigit (buf[2]))
> +	  && isdigit ((int) buf[1]) && isdigit ((int) buf[2]))
>  	{
>  	  error (_("Protocol error with Rcmd"));
>  	}
> Index: serial.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/serial.c,v
> retrieving revision 1.28
> diff -p -u -r1.28 serial.c
> --- serial.c	9 Jan 2007 17:58:58 -0000	1.28
> +++ serial.c	6 Apr 2007 22:06:47 -0000
> @@ -191,7 +191,7 @@ serial_open (const char *name)
>        ops = serial_interface_lookup ("pipe");
>        /* Discard ``|'' and any space before the command itself.  */
>        ++open_name;
> -      while (isspace (*open_name))
> +      while (isspace ((int) *open_name))
>  	++open_name;
>      }
>    /* Check for a colon, suggesting an IP address/port pair.
> Index: stabsread.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/stabsread.c,v
> retrieving revision 1.88
> diff -p -u -r1.88 stabsread.c
> --- stabsread.c	29 Mar 2007 18:33:58 -0000	1.88
> +++ stabsread.c	6 Apr 2007 22:06:47 -0000
> @@ -554,7 +554,7 @@ process_reference (char **string)
>    p = *string + 1;
>  
>    /* Read number as reference id. */
> -  while (*p && isdigit (*p))
> +  while (*p && isdigit ((int) *p))
>      {
>        refnum = refnum * 10 + *p - '0';
>        p++;
> @@ -707,7 +707,7 @@ define_symbol (CORE_ADDR valu, char *str
>       deftypes we know how to handle is a local.  */
>    if (!strchr ("cfFGpPrStTvVXCR", *p))
>  #else
> -  if (isdigit (*p) || *p == '(' || *p == '-')
> +  if (isdigit ((int) *p) || *p == '(' || *p == '-')
>  #endif
>      deftype = 'l';
>    else
> @@ -1765,7 +1765,7 @@ again:
>        break;
>  
>      case '@':
> -      if (isdigit (**pp) || **pp == '(' || **pp == '-')
> +      if (isdigit ((int) **pp) || **pp == '(' || **pp == '-')
>  	{			/* Member (class & variable) type */
>  	  /* FIXME -- we should be doing smash_to_XXX types here.  */
>  
> Index: stack.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/stack.c,v
> retrieving revision 1.143
> diff -p -u -r1.143 stack.c
> --- stack.c	29 Mar 2007 07:35:39 -0000	1.143
> +++ stack.c	6 Apr 2007 22:06:48 -0000
> @@ -720,14 +720,14 @@ parse_frame_specification_1 (const char 
>  	  const char *p;
>  
>  	  /* Skip leading white space, bail of EOL.  */
> -	  while (isspace (*frame_exp))
> +	  while (isspace ((int) *frame_exp))
>  	    frame_exp++;
>  	  if (!*frame_exp)
>  	    break;
>  
>  	  /* Parse the argument, extract it, save it.  */
>  	  for (p = frame_exp;
> -	       *p && !isspace (*p);
> +	       *p && !isspace ((int) *p);
>  	       p++);
>  	  addr_string = savestring (frame_exp, p - frame_exp);
>  	  frame_exp = p;
> Index: symfile.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/symfile.c,v
> retrieving revision 1.182
> diff -p -u -r1.182 symfile.c
> --- symfile.c	26 Feb 2007 20:04:38 -0000	1.182
> +++ symfile.c	6 Apr 2007 22:06:48 -0000
> @@ -2414,7 +2414,7 @@ set_ext_lang_command (char *args, int fr
>      error (_("'%s': Filename extension must begin with '.'"), ext_args);
>  
>    /* Find end of first arg.  */
> -  while (*cp && !isspace (*cp))
> +  while (*cp && !isspace ((int) *cp))
>      cp++;
>  
>    if (*cp == '\0')
> @@ -2425,7 +2425,7 @@ set_ext_lang_command (char *args, int fr
>    *cp++ = '\0';
>  
>    /* Find beginning of second arg, which should be a source language.  */
> -  while (*cp && isspace (*cp))
> +  while (*cp && isspace ((int) *cp))
>      cp++;
>  
>    if (*cp == '\0')
> Index: symtab.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/symtab.c,v
> retrieving revision 1.156
> diff -p -u -r1.156 symtab.c
> --- symtab.c	28 Mar 2007 00:12:15 -0000	1.156
> +++ symtab.c	6 Apr 2007 22:06:49 -0000
> @@ -2568,7 +2568,7 @@ operator_chars (char *p, char **end)
>  
>    /* Don't get faked out by `operator' being part of a longer
>       identifier.  */
> -  if (isalpha (*p) || *p == '_' || *p == '$' || *p == '\0')
> +  if (isalpha ((int) *p) || *p == '_' || *p == '$' || *p == '\0')
>      return *end;
>  
>    /* Allow some whitespace between `operator' and the operator symbol.  */
> @@ -2577,10 +2577,10 @@ operator_chars (char *p, char **end)
>  
>    /* Recognize 'operator TYPENAME'. */
>  
> -  if (isalpha (*p) || *p == '_' || *p == '$')
> +  if (isalpha ((int) *p) || *p == '_' || *p == '$')
>      {
>        char *q = p + 1;
> -      while (isalnum (*q) || *q == '_' || *q == '$')
> +      while (isalnum ((int) *q) || *q == '_' || *q == '$')
>  	q++;
>        *end = q;
>        return p;
> @@ -2968,7 +2968,7 @@ search_symbols (char *regexp, domain_enu
>        if (*opname)
>  	{
>  	  int fix = -1;		/* -1 means ok; otherwise number of spaces needed. */
> -	  if (isalpha (*opname) || *opname == '_' || *opname == '$')
> +	  if (isalpha ((int) *opname) || *opname == '_' || *opname == '$')
>  	    {
>  	      /* There should 1 space between 'operator' and 'TYPENAME'. */
>  	      if (opname[-1] != ' ' || opname[-2] == ' ')
> @@ -3510,7 +3510,7 @@ language_search_unquoted_string (char *t
>  {
>    for (; p > text; --p)
>      {
> -      if (isalnum (p[-1]) || p[-1] == '_' || p[-1] == '\0')
> +      if (isalnum ((int) p[-1]) || p[-1] == '_' || p[-1] == '\0')
>  	continue;
>        else
>  	{
> @@ -3530,7 +3530,7 @@ language_search_unquoted_string (char *t
>  		     Unfortunately we have to find it now to decide.  */
>  
>  		  while (t > text)
> -		    if (isalnum (t[-1]) || t[-1] == '_' ||
> +		    if (isalnum ((int) t[-1]) || t[-1] == '_' ||
>  			t[-1] == ' '    || t[-1] == ':' ||
>  			t[-1] == '('    || t[-1] == ')')
>  		      --t;
> @@ -3617,7 +3617,7 @@ make_symbol_completion_list (char *text,
>  	   which are in symbols.  */
>  	while (p > text)
>  	  {
> -	    if (isalnum (p[-1]) || p[-1] == '_' || p[-1] == '\0')
> +	    if (isalnum ((int) p[-1]) || p[-1] == '_' || p[-1] == '\0')
>  	      --p;
>  	    else
>  	      break;
> Index: thread.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/thread.c,v
> retrieving revision 1.52
> diff -p -u -r1.52 thread.c
> --- thread.c	30 Mar 2007 12:57:43 -0000	1.52
> +++ thread.c	6 Apr 2007 22:06:49 -0000
> @@ -584,7 +584,7 @@ thread_apply_command (char *tidlist, int
>    if (tidlist == NULL || *tidlist == '\000')
>      error (_("Please specify a thread ID list"));
>  
> -  for (cmd = tidlist; *cmd != '\000' && !isalpha (*cmd); cmd++);
> +  for (cmd = tidlist; *cmd != '\000' && !isalpha ((int) *cmd); cmd++);
>  
>    if (*cmd == '\000')
>      error (_("Please specify a command following the thread ID list"));
> Index: utils.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/utils.c,v
> retrieving revision 1.176
> diff -p -u -r1.176 utils.c
> --- utils.c	30 Mar 2007 09:31:31 -0000	1.176
> +++ utils.c	6 Apr 2007 22:06:49 -0000
> @@ -2310,11 +2310,11 @@ strcmp_iw (const char *string1, const ch
>  {
>    while ((*string1 != '\0') && (*string2 != '\0'))
>      {
> -      while (isspace (*string1))
> +      while (isspace ((int) *string1))
>  	{
>  	  string1++;
>  	}
> -      while (isspace (*string2))
> +      while (isspace ((int) *string2))
>  	{
>  	  string2++;
>  	}
> @@ -2369,11 +2369,11 @@ strcmp_iw_ordered (const char *string1, 
>  {
>    while ((*string1 != '\0') && (*string2 != '\0'))
>      {
> -      while (isspace (*string1))
> +      while (isspace ((int) *string1))
>  	{
>  	  string1++;
>  	}
> -      while (isspace (*string2))
> +      while (isspace ((int) *string2))
>  	{
>  	  string2++;
>  	}
> @@ -2846,9 +2846,9 @@ string_to_core_addr (const char *my_stri
>        int i;
>        for (i = 2; my_string[i] != '\0'; i++)
>  	{
> -	  if (isdigit (my_string[i]))
> +	  if (isdigit ((int) my_string[i]))
>  	    addr = (my_string[i] - '0') + (addr * 16);
> -	  else if (isxdigit (my_string[i]))
> +	  else if (isxdigit ((int) my_string[i]))
>  	    addr = (tolower (my_string[i]) - 'a' + 0xa) + (addr * 16);
>  	  else
>  	    error (_("invalid hex \"%s\""), my_string);
> @@ -2860,7 +2860,7 @@ string_to_core_addr (const char *my_stri
>        int i;
>        for (i = 0; my_string[i] != '\0'; i++)
>  	{
> -	  if (isdigit (my_string[i]))
> +	  if (isdigit ((int) my_string[i]))
>  	    addr = (my_string[i] - '0') + (addr * 10);
>  	  else
>  	    error (_("invalid decimal \"%s\""), my_string);
> @@ -3136,7 +3136,7 @@ strtoulst (const char *num, const char *
>    int i = 0;
>  
>    /* Skip leading whitespace.  */
> -  while (isspace (num[i]))
> +  while (isspace ((int) num[i]))
>      i++;
>  
>    /* Handle prefixes.  */
> Index: cli/cli-cmds.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/cli/cli-cmds.c,v
> retrieving revision 1.70
> diff -p -u -r1.70 cli-cmds.c
> --- cli/cli-cmds.c	27 Feb 2007 19:46:04 -0000	1.70
> +++ cli/cli-cmds.c	6 Apr 2007 22:06:49 -0000
> @@ -499,17 +499,17 @@ source_command (char *args, int from_tty
>    if (args)
>      {
>        /* Make sure leading white space does not break the comparisons.  */
> -      while (isspace(args[0]))
> +      while (isspace((int) args[0]))
>  	args++;
>  
>        /* Is -v the first thing in the string?  */
> -      if (args[0] == '-' && args[1] == 'v' && isspace (args[2]))
> +      if (args[0] == '-' && args[1] == 'v' && isspace ((int) args[2]))
>  	{
>  	  source_verbose = 1;
>  
>  	  /* Trim -v and whitespace from the filename.  */
>  	  file = &args[3];
> -	  while (isspace (file[0]))
> +	  while (isspace ((int) file[0]))
>  	    file++;
>  	}
>      }
> Index: cli/cli-decode.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/cli/cli-decode.c,v
> retrieving revision 1.60
> diff -p -u -r1.60 cli-decode.c
> --- cli/cli-decode.c	9 Jan 2007 17:59:00 -0000	1.60
> +++ cli/cli-decode.c	6 Apr 2007 22:06:49 -0000
> @@ -925,7 +925,7 @@ print_doc_line (struct ui_file *stream, 
>      }
>    strncpy (line_buffer, str, p - str);
>    line_buffer[p - str] = '\0';
> -  if (islower (line_buffer[0]))
> +  if (islower ((int) line_buffer[0]))
>      line_buffer[0] = toupper (line_buffer[0]);
>    ui_out_text (uiout, line_buffer);
>  }
> @@ -1027,7 +1027,7 @@ find_command_name_length (const char *te
>       used as a suffix for print, examine and display.
>       Note that this is larger than the character set allowed when creating
>       user-defined commands.  */
> -  while (isalnum (*p) || *p == '-' || *p == '_' ||
> +  while (isalnum ((int) *p) || *p == '-' || *p == '_' ||
>  	 /* Characters used by TUI specific commands.  */
>  	 *p == '+' || *p == '<' || *p == '>' || *p == '$' ||
>  	 /* Characters used for XDB compatibility.  */
> @@ -1118,7 +1118,7 @@ lookup_cmd_1 (char **text, struct cmd_li
>        for (tmp = 0; tmp < len; tmp++)
>  	{
>  	  char x = command[tmp];
> -	  command[tmp] = isupper (x) ? tolower (x) : x;
> +	  command[tmp] = isupper ((int) x) ? tolower (x) : x;
>  	}
>        found = find_cmd (command, len, clist, ignore_help_classes, &nfound);
>      }
> @@ -1474,7 +1474,7 @@ lookup_cmd_composition (char *text,
>          for (tmp = 0; tmp < len; tmp++)
>            {
>              char x = command[tmp];
> -            command[tmp] = isupper (x) ? tolower (x) : x;
> +            command[tmp] = isupper ((int) x) ? tolower (x) : x;
>            }
>          *cmd = find_cmd (command, len, cur_list, 1, &nfound);
>        }
> Index: cli/cli-dump.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/cli/cli-dump.c,v
> retrieving revision 1.26
> diff -p -u -r1.26 cli-dump.c
> --- cli/cli-dump.c	8 Mar 2007 16:54:02 -0000	1.26
> +++ cli/cli-dump.c	6 Apr 2007 22:06:49 -0000
> @@ -41,7 +41,7 @@ skip_spaces (char *chp)
>  {
>    if (chp == NULL)
>      return NULL;
> -  while (isspace (*chp))
> +  while (isspace ((int) *chp))
>      chp++;
>    return chp;
>  }
> Index: cli/cli-script.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/cli/cli-script.c,v
> retrieving revision 1.40
> diff -p -u -r1.40 cli-script.c
> --- cli/cli-script.c	27 Jan 2007 12:30:46 -0000	1.40
> +++ cli/cli-script.c	6 Apr 2007 22:06:49 -0000
> @@ -683,7 +683,7 @@ locate_arg (char *p)
>    while ((p = strchr (p, '$')))
>      {
>        if (strncmp (p, "$arg", 4) == 0
> -	  && (isdigit (p[4]) || p[4] == 'c'))
> +	  && (isdigit ((int) p[4]) || p[4] == 'c'))
>  	return p;
>        p++;
>      }
> @@ -866,7 +866,7 @@ read_next_line (struct command_line **co
>      {
>        char *first_arg;
>        first_arg = p + 5;
> -      while (first_arg < p1 && isspace (*first_arg))
> +      while (first_arg < p1 && isspace ((int) *first_arg))
>          first_arg++;
>        *command = build_command_line (while_control, first_arg);
>      }
> @@ -874,7 +874,7 @@ read_next_line (struct command_line **co
>      {
>        char *first_arg;
>        first_arg = p + 2;
> -      while (first_arg < p1 && isspace (*first_arg))
> +      while (first_arg < p1 && isspace ((int) *first_arg))
>          first_arg++;
>        *command = build_command_line (if_control, first_arg);
>      }
> @@ -882,7 +882,7 @@ read_next_line (struct command_line **co
>      {
>        char *first_arg;
>        first_arg = p + 8;
> -      while (first_arg < p1 && isspace (*first_arg))
> +      while (first_arg < p1 && isspace ((int) *first_arg))
>          first_arg++;
>        *command = build_command_line (commands_control, first_arg);
>      }
> @@ -1205,7 +1205,7 @@ validate_comname (char *comname)
>    p = comname;
>    while (*p)
>      {
> -      if (!isalnum (*p) && *p != '-' && *p != '_')
> +      if (!isalnum ((int) *p) && *p != '-' && *p != '_')
>  	error (_("Junk in argument list: \"%s\""), p);
>        p++;
>      }
> @@ -1294,7 +1294,7 @@ define_command (char *comname, int from_
>    /* If the rest of the commands will be case insensitive, this one
>       should behave in the same manner. */
>    for (tem = comname; *tem; tem++)
> -    if (isupper (*tem))
> +    if (isupper ((int) *tem))
>        *tem = tolower (*tem);
>  
>    sprintf (tmpbuf, "Type commands for definition of \"%s\".", comname);
> Index: cli/cli-setshow.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/cli/cli-setshow.c,v
> retrieving revision 1.29
> diff -p -u -r1.29 cli-setshow.c
> --- cli/cli-setshow.c	9 Jan 2007 17:59:00 -0000	1.29
> +++ cli/cli-setshow.c	6 Apr 2007 22:06:49 -0000
> @@ -40,7 +40,7 @@ parse_auto_binary_operation (const char 
>    if (arg != NULL && *arg != '\0')
>      {
>        int length = strlen (arg);
> -      while (isspace (arg[length - 1]) && length > 0)
> +      while (isspace ((int) arg[length - 1]) && length > 0)
>  	length--;
>        if (strncmp (arg, "on", length) == 0
>  	  || strncmp (arg, "1", length) == 0
> Index: mi/mi-cmd-var.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/mi/mi-cmd-var.c,v
> retrieving revision 1.31
> diff -p -u -r1.31 mi-cmd-var.c
> --- mi/mi-cmd-var.c	27 Feb 2007 23:42:33 -0000	1.31
> +++ mi/mi-cmd-var.c	6 Apr 2007 22:06:49 -0000
> @@ -102,7 +102,7 @@ mi_cmd_var_create (char *command, char *
>        xfree (name);
>        name = varobj_gen_name ();
>      }
> -  else if (!isalpha (*name))
> +  else if (!isalpha ((int) *name))
>      error (_("mi_cmd_var_create: name of object must begin with a letter"));
>  
>    if (strcmp (frame, "*") == 0)
> Index: mi/mi-parse.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/mi/mi-parse.c,v
> retrieving revision 1.12
> diff -p -u -r1.12 mi-parse.c
> --- mi/mi-parse.c	9 Jan 2007 17:59:08 -0000	1.12
> +++ mi/mi-parse.c	6 Apr 2007 22:06:49 -0000
> @@ -39,7 +39,7 @@ mi_parse_argv (char *args, struct mi_par
>      {
>        char *arg;
>        /* skip leading white space */
> -      while (isspace (*chp))
> +      while (isspace ((int) *chp))
>  	chp++;
>        /* Three possibilities: EOF, quoted string, or other text. */
>        switch (*chp)
> @@ -79,7 +79,7 @@ mi_parse_argv (char *args, struct mi_par
>  		return;
>  	      }
>  	    /* Insist on trailing white space. */
> -	    if (chp[1] != '\0' && !isspace (chp[1]))
> +	    if (chp[1] != '\0' && !isspace ((int) chp[1]))
>  	      {
>  		freeargv (argv);
>  		return;
> @@ -110,7 +110,7 @@ mi_parse_argv (char *args, struct mi_par
>  	       characters into a buffer. */
>  	    int len;
>  	    char *start = chp;
> -	    while (*chp != '\0' && !isspace (*chp))
> +	    while (*chp != '\0' && !isspace ((int) *chp))
>  	      {
>  		chp++;
>  	      }
> @@ -154,7 +154,7 @@ mi_parse (char *cmd)
>    memset (parse, 0, sizeof (*parse));
>  
>    /* Before starting, skip leading white space. */
> -  while (isspace (*cmd))
> +  while (isspace ((int) *cmd))
>      cmd++;
>  
>    /* Find/skip any token and then extract it. */
> @@ -167,7 +167,7 @@ mi_parse (char *cmd)
>    /* This wasn't a real MI command.  Return it as a CLI_COMMAND. */
>    if (*chp != '-')
>      {
> -      while (isspace (*chp))
> +      while (isspace ((int) *chp))
>  	chp++;
>        parse->command = xstrdup (chp);
>        parse->op = CLI_COMMAND;
> @@ -177,7 +177,7 @@ mi_parse (char *cmd)
>    /* Extract the command. */
>    {
>      char *tmp = chp + 1;	/* discard ``-'' */
> -    for (; *chp && !isspace (*chp); chp++)
> +    for (; *chp && !isspace ((int) *chp); chp++)
>        ;
>      parse->command = xmalloc ((chp - tmp + 1) * sizeof (char *));
>      memcpy (parse->command, tmp, chp - tmp);
> @@ -198,7 +198,7 @@ mi_parse (char *cmd)
>      }
>  
>    /* Skip white space following the command. */
> -  while (isspace (*chp))
> +  while (isspace ((int) *chp))
>      chp++;
>  
>    /* For new argv commands, attempt to return the parsed argument
> Index: tui/tui-win.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/tui/tui-win.c,v
> retrieving revision 1.33
> diff -p -u -r1.33 tui-win.c
> --- tui/tui-win.c	27 Feb 2007 19:46:04 -0000	1.33
> +++ tui/tui-win.c	6 Apr 2007 22:06:50 -0000
> @@ -1501,7 +1501,7 @@ parse_scrolling_args (char *arg, struct 
>  
>        /* process the number of lines to scroll */
>        buf = buf_ptr = xstrdup (arg);
> -      if (isdigit (*buf_ptr))
> +      if (isdigit ((int) *buf_ptr))
>  	{
>  	  char *num_str;
>  
> 


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