From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20479 invoked by alias); 6 Apr 2007 23:06:15 -0000 Received: (qmail 20460 invoked by uid 22791); 6 Apr 2007 23:06:10 -0000 X-Spam-Check-By: sourceware.org Received: from sibelius.xs4all.nl (HELO brahms.sibelius.xs4all.nl) (82.92.89.47) by sourceware.org (qpsmtpd/0.31) with ESMTP; Sat, 07 Apr 2007 00:05:58 +0100 Received: from brahms.sibelius.xs4all.nl (kettenis@localhost.sibelius.xs4all.nl [127.0.0.1]) by brahms.sibelius.xs4all.nl (8.14.0/8.14.0) with ESMTP id l36N3BCH000916; Sat, 7 Apr 2007 01:03:11 +0200 (CEST) Received: (from kettenis@localhost) by brahms.sibelius.xs4all.nl (8.14.0/8.14.0/Submit) id l36N3AgL014922; Sat, 7 Apr 2007 01:03:10 +0200 (CEST) Date: Fri, 06 Apr 2007 23:06:00 -0000 Message-Id: <200704062303.l36N3AgL014922@brahms.sibelius.xs4all.nl> From: Mark Kettenis To: sje@cup.hp.com CC: gdb-patches@sourceware.org In-reply-to: <200704062233.PAA16568@hpsje.cup.hp.com> (message from Steve Ellcey on Fri, 6 Apr 2007 15:33:50 -0700 (PDT)) Subject: Re: Patch for isdigit/isalpha/etc. macro arguments References: <200704062233.PAA16568@hpsje.cup.hp.com> Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2007-04/txt/msg00035.txt.bz2 > Date: Fri, 6 Apr 2007 15:33:50 -0700 (PDT) > From: Steve Ellcey > > 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 > > * 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 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; > >