This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[obv] Code cleanup: enum search_domain


Hi,

checked in.

with the recent Tom's cleanup introducing enum search_domain I have found some
forgotten unused data.

The symtab.h warnings come from my own experience from unposted patch.


Thanks,
Jan


http://sourceware.org/ml/gdb-cvs/2011-04/msg00062.html

--- src/gdb/ChangeLog	2011/04/09 15:20:37	1.12916
+++ src/gdb/ChangeLog	2011/04/09 19:35:09	1.12917
@@ -1,5 +1,17 @@
 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.
 	* dwarf2read.c (write_psymtabs_to_index): Return also on no
 	PSYMTABS_ADDRMAP.
--- src/gdb/symtab.c	2011/04/04 17:41:07	1.264
+++ src/gdb/symtab.c	2011/04/09 19:35:11	1.265
@@ -2970,10 +2970,10 @@
    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 @@
   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 @@
   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 @@
 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);
--- src/gdb/symtab.h	2011/04/06 19:50:05	1.178
+++ src/gdb/symtab.h	2011/04/09 19:35:11	1.179
@@ -398,19 +398,20 @@
   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.  */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]