PR breakpoint/12803
authorKeith Seitz <keiths@redhat.com>
Tue, 24 May 2011 21:00:09 +0000 (21:00 +0000)
committerKeith Seitz <keiths@redhat.com>
Tue, 24 May 2011 21:00:09 +0000 (21:00 +0000)
* linespec.c (keep_name_info): Add handling for "volatile" keyword.
(decode_compound): Unconditionally call keep_name_info.

gdb/ChangeLog
gdb/linespec.c

index 35012d2243bbdb772f8f2dadbbc4d185653e653b..409426360a7280880f9d86748ca4bebe98a152d4 100644 (file)
@@ -1,3 +1,9 @@
+2011-05-24  Keith Seitz  <keiths@redhat.com>
+
+       PR breakpoint/12803
+       * linespec.c (keep_name_info): Add handling for "volatile" keyword.
+       (decode_compound): Unconditionally call keep_name_info.
+
 2011-05-24  Pedro Alves  <pedro@codesourcery.com>
 
        * breakpoint.c (watchpoint_check): If the watchpoint went out of
index 871d37d95364e52bc46bb338530cadbcf6681e51..dcb80ff3823ec8ec3e6c1dcae54b05d162eab284 100644 (file)
@@ -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);