This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[obv] Code cleanup: enum search_domain
- From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- To: gdb-patches at sourceware dot org
- Date: Sat, 9 Apr 2011 21:37:41 +0200
- Subject: [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. */