diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/symtab.c | 17 |
2 files changed, 13 insertions, 9 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 067fb3d..a04f498 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2018-11-20 Philippe Waroquiers <philippe.waroquiers@skynet.be> + + * symtab.c (search_symbols): Properly check absence of type regexp + before entering the loop scanning the minimal symbols. + 2018-11-20 John Darrington <john@darrington.wattle.id.au> * s12z-tdep.c (s12z_extract_return_value): New function. diff --git a/gdb/symtab.c b/gdb/symtab.c index 2e9e632..7a77bcf 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -4544,9 +4544,12 @@ search_symbols (const char *regexp, enum search_domain kind, sort_search_symbols_remove_dups (&result); /* If there are no eyes, avoid all contact. I mean, if there are - no debug symbols, then add matching minsyms. */ + no debug symbols, then add matching minsyms. But if the user wants + to see symbols matching a type regexp, then never give a minimal symbol, + as we assume that a minimal symbol does not have a type. */ - if (found_misc || (nfiles == 0 && kind != FUNCTIONS_DOMAIN)) + if ((found_misc || (nfiles == 0 && kind != FUNCTIONS_DOMAIN)) + && !treg.has_value ()) { ALL_MSYMBOLS (objfile, msymbol) { @@ -4560,13 +4563,9 @@ search_symbols (const char *regexp, enum search_domain kind, || MSYMBOL_TYPE (msymbol) == ourtype3 || MSYMBOL_TYPE (msymbol) == ourtype4) { - /* If the user wants to see var matching a type regexp, - then never give a minimal symbol. */ - if (kind != VARIABLES_DOMAIN - && !treg.has_value () /* minimal symbol has never a type ???? */ - && (!preg.has_value () - || preg->exec (MSYMBOL_NATURAL_NAME (msymbol), 0, - NULL, 0) == 0)) + if (!preg.has_value () + || preg->exec (MSYMBOL_NATURAL_NAME (msymbol), 0, + NULL, 0) == 0) { /* For functions we can do a quick check of whether the symbol might be found via find_pc_symtab. */ |