diff options
author | Keith Seitz <keiths@redhat.com> | 2011-05-24 21:00:09 +0000 |
---|---|---|
committer | Keith Seitz <keiths@redhat.com> | 2011-05-24 21:00:09 +0000 |
commit | f17170e5e261d76b3481d29203466800d2e9a69b (patch) | |
tree | e4e8432a43e9b5b919e67087bc4ed5c1abf99987 /gdb/linespec.c | |
parent | c8fa16ed5ab3fe171ad9d5f5e4bad585ce639c27 (diff) | |
download | gdb-f17170e5e261d76b3481d29203466800d2e9a69b.zip gdb-f17170e5e261d76b3481d29203466800d2e9a69b.tar.gz gdb-f17170e5e261d76b3481d29203466800d2e9a69b.tar.bz2 |
PR breakpoint/12803
* linespec.c (keep_name_info): Add handling for "volatile" keyword.
(decode_compound): Unconditionally call keep_name_info.
Diffstat (limited to 'gdb/linespec.c')
-rw-r--r-- | gdb/linespec.c | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/gdb/linespec.c b/gdb/linespec.c index 871d37d..dcb80ff 100644 --- a/gdb/linespec.c +++ b/gdb/linespec.c @@ -715,8 +715,7 @@ keep_name_info (char *ptr) if (name_end (ptr)) return remove_trailing_whitespace (start, ptr); - while (isspace (*p)) - ++p; + p = skip_spaces (p); if (*p == '<') ptr = p = find_template_name_end (ptr); @@ -731,12 +730,21 @@ keep_name_info (char *ptr) return remove_trailing_whitespace (start, ptr); /* Keep important keywords. */ - while (isspace (*p)) - ++p; - if (strncmp (p, "const", 5) == 0 - && (isspace (p[5]) || p[5] == '\0' - || strchr (get_gdb_completer_quote_characters (), p[5]) != NULL)) - ptr = p = p + 5; + while (1) + { + char *quotes = get_gdb_completer_quote_characters (); + p = skip_spaces (p); + if (strncmp (p, "const", 5) == 0 + && (isspace (p[5]) || p[5] == '\0' + || strchr (quotes, p[5]) != NULL)) + ptr = p = p + 5; + else if (strncmp (p, "volatile", 8) == 0 + && (isspace (p[8]) || p[8] == '\0' + || strchr (quotes, p[8]) != NULL)) + ptr = p = p + 8; + else + break; + } return remove_trailing_whitespace (start, ptr); } @@ -1574,9 +1582,7 @@ decode_compound (char **argptr, int funfirstline, /* We couldn't find a class, so we're in case 2 above. We check the entire name as a symbol instead. */ - if (current_language->la_language == language_cplus - || current_language->la_language == language_java) - p = keep_name_info (p); + p = keep_name_info (p); copy = (char *) alloca (p - saved_arg2 + 1); memcpy (copy, saved_arg2, p - saved_arg2); |