gdb/
authorJan Kratochvil <jan.kratochvil@redhat.com>
Sat, 9 Apr 2011 19:35:11 +0000 (19:35 +0000)
committerJan Kratochvil <jan.kratochvil@redhat.com>
Sat, 9 Apr 2011 19:35:11 +0000 (19:35 +0000)
Code cleanup.
* symtab.c (search_symbols): Reorder the KIND description in the
function comment.  Remove the unused 4th element of types, types2,
types3 and types4.  New gdb_assert on KIND.
(symtab_symbol_info): Remove the unused 4th element of classnames.
New gdb_assert on KIND.
* symtab.h (enum search_domain): New warning in the enum comment.
Assign numbers to the elements VARIABLES_DOMAIN, FUNCTIONS_DOMAIN and
TYPES_DOMAIN.

gdb/ChangeLog
gdb/symtab.c
gdb/symtab.h

index 7da8c9e892df4a9c2c5759b0a17f0d9272544c3a..1d6bcc5cc1f367736259a6de013828f054670062 100644 (file)
@@ -1,3 +1,15 @@
+2011-04-09  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       Code cleanup.
+       * symtab.c (search_symbols): Reorder the KIND description in the
+       function comment.  Remove the unused 4th element of types, types2,
+       types3 and types4.  New gdb_assert on KIND.
+       (symtab_symbol_info): Remove the unused 4th element of classnames.
+       New gdb_assert on KIND.
+       * symtab.h (enum search_domain): New warning in the enum comment.
+       Assign numbers to the elements VARIABLES_DOMAIN, FUNCTIONS_DOMAIN and
+       TYPES_DOMAIN.
+
 2011-04-09  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
        Fix crash of gdb save-index on a STABS file.
index cfceef6dfb5d8b4574ed3c8db9fdf97ae93c5fc3..6ad523e92d226f4b8bad3af70731eb43413db199 100644 (file)
@@ -2970,10 +2970,10 @@ search_symbols_name_matches (const char *symname, void *user_data)
    returning the results in *MATCHES.
 
    Only symbols of KIND are searched:
+   VARIABLES_DOMAIN - search all symbols, excluding functions, type names,
+                      and constants (enums)
    FUNCTIONS_DOMAIN - search all functions
    TYPES_DOMAIN     - search all type names
-   VARIABLES_DOMAIN - search all symbols, excluding functions, type names,
-   and constants (enums)
 
    free_search_symbols should be called when *MATCHES is no longer needed.
 
@@ -2996,13 +2996,13 @@ search_symbols (char *regexp, enum search_domain kind,
   char *val;
   int found_misc = 0;
   static const enum minimal_symbol_type types[]
-    = {mst_data, mst_text, mst_abs, mst_unknown};
+    = {mst_data, mst_text, mst_abs};
   static const enum minimal_symbol_type types2[]
-    = {mst_bss, mst_file_text, mst_abs, mst_unknown};
+    = {mst_bss, mst_file_text, mst_abs};
   static const enum minimal_symbol_type types3[]
-    = {mst_file_data, mst_solib_trampoline, mst_abs, mst_unknown};
+    = {mst_file_data, mst_solib_trampoline, mst_abs};
   static const enum minimal_symbol_type types4[]
-    = {mst_file_bss, mst_text_gnu_ifunc, mst_abs, mst_unknown};
+    = {mst_file_bss, mst_text_gnu_ifunc, mst_abs};
   enum minimal_symbol_type ourtype;
   enum minimal_symbol_type ourtype2;
   enum minimal_symbol_type ourtype3;
@@ -3013,6 +3013,8 @@ search_symbols (char *regexp, enum search_domain kind,
   struct cleanup *old_chain = NULL;
   struct search_symbols_data datum;
 
+  gdb_assert (kind <= TYPES_DOMAIN);
+
   ourtype = types[kind];
   ourtype2 = types2[kind];
   ourtype3 = types3[kind];
@@ -3311,13 +3313,15 @@ static void
 symtab_symbol_info (char *regexp, enum search_domain kind, int from_tty)
 {
   static const char * const classnames[] =
-    {"variable", "function", "type", "method"};
+    {"variable", "function", "type"};
   struct symbol_search *symbols;
   struct symbol_search *p;
   struct cleanup *old_chain;
   char *last_filename = NULL;
   int first = 1;
 
+  gdb_assert (kind <= TYPES_DOMAIN);
+
   /* Must make sure that if we're interrupted, symbols gets freed.  */
   search_symbols (regexp, kind, 0, (char **) NULL, &symbols);
   old_chain = make_cleanup_free_search_symbols (symbols);
index 4913e6c0d80bccd6c3fd15533e743f32bf98cbb4..72f92878496cc12aaca8f16d92916afa3bc6bda1 100644 (file)
@@ -398,19 +398,20 @@ typedef enum domain_enum_tag
   LABEL_DOMAIN
 } domain_enum;
 
-/* Searching domains, used for `search_symbols'.  */
+/* Searching domains, used for `search_symbols'.  Element numbers are
+   hardcoded in GDB, check all enum uses before changing it.  */
 
 enum search_domain
 {
   /* Everything in VAR_DOMAIN minus FUNCTIONS_DOMAIN and
      TYPES_DOMAIN.  */
-  VARIABLES_DOMAIN,
+  VARIABLES_DOMAIN = 0,
 
   /* All functions -- for some reason not methods, though.  */
-  FUNCTIONS_DOMAIN,
+  FUNCTIONS_DOMAIN = 1,
 
   /* All defined types */
-  TYPES_DOMAIN
+  TYPES_DOMAIN = 2,
 };
 
 /* An address-class says where to find the value of a symbol.  */