Patch for isdigit/isalpha/etc. macro arguments

Steve Ellcey
2007-04-06T22:34:05Z

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.

proj/opensrc/nightly/src/src/gdb/exec.c: In function 'set_section_command':
/proj/opensrc/nightly/src/src/gdb/exec.c:648: warning: array subscript has type 'char'
make[1]: *** [exec.o] Error 1
make[1]: Leaving directory `/proj/opensrc/nightly/build-hppa1.1-hp-hpux11.11-trunk/obj_src/gdb'
make: *** [all-gdb] Error 2

This doesn't happen when using the isdigit, etc. macros on
Linux because isdigit(c) expands to something like "__array[(int) c] &
MASK", i.e. the macro contains an explicit integer cast and so GCC
doesn't complain about a non-integer array index.

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).

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?

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 "));
*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;