gdb: Convert language la_collect_symbol_completion_matches field to a method
This commit changes the language_data::la_collect_symbol_completion_matches function pointer member variable into a member function of language_defn. There should be no user visible changes after this commit. gdb/ChangeLog: * ada-lang.c (ada_collect_symbol_completion_matches): Rename to ada_language::collect_symbol_completion_matches. (ada_language_data): Delete la_collect_symbol_completion_matches initializer. (ada_language::collect_symbol_completion_matches): New member function, implementation from ada_collect_symbol_completion_matches. * c-lang.c (c_language_data): Delete la_collect_symbol_completion_matches initializer. (cplus_language_data): Likewise. (asm_language_data): Likewise. (minimal_language_data): Likewise. * d-lang.c (d_language_data): Likewise. * f-lang.c (f_collect_symbol_completion_matches): Rename to f_language::collect_symbol_completion_matches. (f_language_data): Delete la_collect_symbol_completion_matches initializer. (f_language::collect_symbol_completion_matches) New member function, implementation from f_collect_symbol_completion_matches. * go-lang.c (go_language_data): Delete la_collect_symbol_completion_matches initializer. * language.c (unknown_language_data): Likewise. (auto_language_data): Likewise. * language.h (language_data): Delete la_collect_symbol_completion_matches field. (language_defn::collect_symbol_completion_matches): New member function. * m2-lang.c (m2_language_data): Delete la_collect_symbol_completion_matches initializer. * objc-lang.c (objc_language_data): Likewise. * opencl-lang.c (opencl_language_data): Likewise. * p-lang.c (pascal_language_data): Likewise. * rust-lang.c (rust_language_data): Likewise. * symtab.c (default_collect_symbol_completion_matches): Delete. (collect_symbol_completion_matches): Update call to collect_symbol_completion_matches. (collect_symbol_completion_matches_type): Likewise. * symtab.h (default_collect_symbol_completion_matches): Delete declaration.
This commit is contained in:
parent
53fc67f8b2
commit
7e56227dff
|
@ -1,3 +1,45 @@
|
||||||
|
2020-06-17 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||||
|
|
||||||
|
* ada-lang.c (ada_collect_symbol_completion_matches): Rename to
|
||||||
|
ada_language::collect_symbol_completion_matches.
|
||||||
|
(ada_language_data): Delete la_collect_symbol_completion_matches
|
||||||
|
initializer.
|
||||||
|
(ada_language::collect_symbol_completion_matches): New member
|
||||||
|
function, implementation from
|
||||||
|
ada_collect_symbol_completion_matches.
|
||||||
|
* c-lang.c (c_language_data): Delete
|
||||||
|
la_collect_symbol_completion_matches initializer.
|
||||||
|
(cplus_language_data): Likewise.
|
||||||
|
(asm_language_data): Likewise.
|
||||||
|
(minimal_language_data): Likewise.
|
||||||
|
* d-lang.c (d_language_data): Likewise.
|
||||||
|
* f-lang.c (f_collect_symbol_completion_matches): Rename to
|
||||||
|
f_language::collect_symbol_completion_matches.
|
||||||
|
(f_language_data): Delete la_collect_symbol_completion_matches
|
||||||
|
initializer.
|
||||||
|
(f_language::collect_symbol_completion_matches) New member
|
||||||
|
function, implementation from f_collect_symbol_completion_matches.
|
||||||
|
* go-lang.c (go_language_data): Delete
|
||||||
|
la_collect_symbol_completion_matches initializer.
|
||||||
|
* language.c (unknown_language_data): Likewise.
|
||||||
|
(auto_language_data): Likewise.
|
||||||
|
* language.h (language_data): Delete
|
||||||
|
la_collect_symbol_completion_matches field.
|
||||||
|
(language_defn::collect_symbol_completion_matches): New member
|
||||||
|
function.
|
||||||
|
* m2-lang.c (m2_language_data): Delete
|
||||||
|
la_collect_symbol_completion_matches initializer.
|
||||||
|
* objc-lang.c (objc_language_data): Likewise.
|
||||||
|
* opencl-lang.c (opencl_language_data): Likewise.
|
||||||
|
* p-lang.c (pascal_language_data): Likewise.
|
||||||
|
* rust-lang.c (rust_language_data): Likewise.
|
||||||
|
* symtab.c (default_collect_symbol_completion_matches): Delete.
|
||||||
|
(collect_symbol_completion_matches): Update call to
|
||||||
|
collect_symbol_completion_matches.
|
||||||
|
(collect_symbol_completion_matches_type): Likewise.
|
||||||
|
* symtab.h (default_collect_symbol_completion_matches): Delete
|
||||||
|
declaration.
|
||||||
|
|
||||||
2020-06-17 Andrew Burgess <andrew.burgess@embecosm.com>
|
2020-06-17 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||||
|
|
||||||
* ada-lang.c (ada_get_gdb_completer_word_break_characters): Delete.
|
* ada-lang.c (ada_get_gdb_completer_word_break_characters): Delete.
|
||||||
|
|
255
gdb/ada-lang.c
255
gdb/ada-lang.c
|
@ -6272,134 +6272,6 @@ ada_lookup_name_info::matches
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Add the list of possible symbol names completing TEXT to TRACKER.
|
|
||||||
WORD is the entire command on which completion is made. */
|
|
||||||
|
|
||||||
static void
|
|
||||||
ada_collect_symbol_completion_matches (completion_tracker &tracker,
|
|
||||||
complete_symbol_mode mode,
|
|
||||||
symbol_name_match_type name_match_type,
|
|
||||||
const char *text, const char *word,
|
|
||||||
enum type_code code)
|
|
||||||
{
|
|
||||||
struct symbol *sym;
|
|
||||||
const struct block *b, *surrounding_static_block = 0;
|
|
||||||
struct block_iterator iter;
|
|
||||||
|
|
||||||
gdb_assert (code == TYPE_CODE_UNDEF);
|
|
||||||
|
|
||||||
lookup_name_info lookup_name (text, name_match_type, true);
|
|
||||||
|
|
||||||
/* First, look at the partial symtab symbols. */
|
|
||||||
expand_symtabs_matching (NULL,
|
|
||||||
lookup_name,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
ALL_DOMAIN);
|
|
||||||
|
|
||||||
/* At this point scan through the misc symbol vectors and add each
|
|
||||||
symbol you find to the list. Eventually we want to ignore
|
|
||||||
anything that isn't a text symbol (everything else will be
|
|
||||||
handled by the psymtab code above). */
|
|
||||||
|
|
||||||
for (objfile *objfile : current_program_space->objfiles ())
|
|
||||||
{
|
|
||||||
for (minimal_symbol *msymbol : objfile->msymbols ())
|
|
||||||
{
|
|
||||||
QUIT;
|
|
||||||
|
|
||||||
if (completion_skip_symbol (mode, msymbol))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
language symbol_language = msymbol->language ();
|
|
||||||
|
|
||||||
/* Ada minimal symbols won't have their language set to Ada. If
|
|
||||||
we let completion_list_add_name compare using the
|
|
||||||
default/C-like matcher, then when completing e.g., symbols in a
|
|
||||||
package named "pck", we'd match internal Ada symbols like
|
|
||||||
"pckS", which are invalid in an Ada expression, unless you wrap
|
|
||||||
them in '<' '>' to request a verbatim match.
|
|
||||||
|
|
||||||
Unfortunately, some Ada encoded names successfully demangle as
|
|
||||||
C++ symbols (using an old mangling scheme), such as "name__2Xn"
|
|
||||||
-> "Xn::name(void)" and thus some Ada minimal symbols end up
|
|
||||||
with the wrong language set. Paper over that issue here. */
|
|
||||||
if (symbol_language == language_auto
|
|
||||||
|| symbol_language == language_cplus)
|
|
||||||
symbol_language = language_ada;
|
|
||||||
|
|
||||||
completion_list_add_name (tracker,
|
|
||||||
symbol_language,
|
|
||||||
msymbol->linkage_name (),
|
|
||||||
lookup_name, text, word);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Search upwards from currently selected frame (so that we can
|
|
||||||
complete on local vars. */
|
|
||||||
|
|
||||||
for (b = get_selected_block (0); b != NULL; b = BLOCK_SUPERBLOCK (b))
|
|
||||||
{
|
|
||||||
if (!BLOCK_SUPERBLOCK (b))
|
|
||||||
surrounding_static_block = b; /* For elmin of dups */
|
|
||||||
|
|
||||||
ALL_BLOCK_SYMBOLS (b, iter, sym)
|
|
||||||
{
|
|
||||||
if (completion_skip_symbol (mode, sym))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
completion_list_add_name (tracker,
|
|
||||||
sym->language (),
|
|
||||||
sym->linkage_name (),
|
|
||||||
lookup_name, text, word);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Go through the symtabs and check the externs and statics for
|
|
||||||
symbols which match. */
|
|
||||||
|
|
||||||
for (objfile *objfile : current_program_space->objfiles ())
|
|
||||||
{
|
|
||||||
for (compunit_symtab *s : objfile->compunits ())
|
|
||||||
{
|
|
||||||
QUIT;
|
|
||||||
b = BLOCKVECTOR_BLOCK (COMPUNIT_BLOCKVECTOR (s), GLOBAL_BLOCK);
|
|
||||||
ALL_BLOCK_SYMBOLS (b, iter, sym)
|
|
||||||
{
|
|
||||||
if (completion_skip_symbol (mode, sym))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
completion_list_add_name (tracker,
|
|
||||||
sym->language (),
|
|
||||||
sym->linkage_name (),
|
|
||||||
lookup_name, text, word);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (objfile *objfile : current_program_space->objfiles ())
|
|
||||||
{
|
|
||||||
for (compunit_symtab *s : objfile->compunits ())
|
|
||||||
{
|
|
||||||
QUIT;
|
|
||||||
b = BLOCKVECTOR_BLOCK (COMPUNIT_BLOCKVECTOR (s), STATIC_BLOCK);
|
|
||||||
/* Don't do this block twice. */
|
|
||||||
if (b == surrounding_static_block)
|
|
||||||
continue;
|
|
||||||
ALL_BLOCK_SYMBOLS (b, iter, sym)
|
|
||||||
{
|
|
||||||
if (completion_skip_symbol (mode, sym))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
completion_list_add_name (tracker,
|
|
||||||
sym->language (),
|
|
||||||
sym->linkage_name (),
|
|
||||||
lookup_name, text, word);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Field Access */
|
/* Field Access */
|
||||||
|
|
||||||
/* Return non-zero if TYPE is a pointer to the GNAT dispatch table used
|
/* Return non-zero if TYPE is a pointer to the GNAT dispatch table used
|
||||||
|
@ -13911,7 +13783,6 @@ extern const struct language_data ada_language_data =
|
||||||
ada_op_print_tab, /* expression operators for printing */
|
ada_op_print_tab, /* expression operators for printing */
|
||||||
0, /* c-style arrays */
|
0, /* c-style arrays */
|
||||||
1, /* String lower bound */
|
1, /* String lower bound */
|
||||||
ada_collect_symbol_completion_matches,
|
|
||||||
ada_watch_location_expression,
|
ada_watch_location_expression,
|
||||||
&ada_varobj_ops,
|
&ada_varobj_ops,
|
||||||
ada_is_string_type,
|
ada_is_string_type,
|
||||||
|
@ -14105,6 +13976,132 @@ public:
|
||||||
return ada_completer_word_break_characters;
|
return ada_completer_word_break_characters;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* See language.h. */
|
||||||
|
|
||||||
|
void collect_symbol_completion_matches (completion_tracker &tracker,
|
||||||
|
complete_symbol_mode mode,
|
||||||
|
symbol_name_match_type name_match_type,
|
||||||
|
const char *text, const char *word,
|
||||||
|
enum type_code code) const override
|
||||||
|
{
|
||||||
|
struct symbol *sym;
|
||||||
|
const struct block *b, *surrounding_static_block = 0;
|
||||||
|
struct block_iterator iter;
|
||||||
|
|
||||||
|
gdb_assert (code == TYPE_CODE_UNDEF);
|
||||||
|
|
||||||
|
lookup_name_info lookup_name (text, name_match_type, true);
|
||||||
|
|
||||||
|
/* First, look at the partial symtab symbols. */
|
||||||
|
expand_symtabs_matching (NULL,
|
||||||
|
lookup_name,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
ALL_DOMAIN);
|
||||||
|
|
||||||
|
/* At this point scan through the misc symbol vectors and add each
|
||||||
|
symbol you find to the list. Eventually we want to ignore
|
||||||
|
anything that isn't a text symbol (everything else will be
|
||||||
|
handled by the psymtab code above). */
|
||||||
|
|
||||||
|
for (objfile *objfile : current_program_space->objfiles ())
|
||||||
|
{
|
||||||
|
for (minimal_symbol *msymbol : objfile->msymbols ())
|
||||||
|
{
|
||||||
|
QUIT;
|
||||||
|
|
||||||
|
if (completion_skip_symbol (mode, msymbol))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
language symbol_language = msymbol->language ();
|
||||||
|
|
||||||
|
/* Ada minimal symbols won't have their language set to Ada. If
|
||||||
|
we let completion_list_add_name compare using the
|
||||||
|
default/C-like matcher, then when completing e.g., symbols in a
|
||||||
|
package named "pck", we'd match internal Ada symbols like
|
||||||
|
"pckS", which are invalid in an Ada expression, unless you wrap
|
||||||
|
them in '<' '>' to request a verbatim match.
|
||||||
|
|
||||||
|
Unfortunately, some Ada encoded names successfully demangle as
|
||||||
|
C++ symbols (using an old mangling scheme), such as "name__2Xn"
|
||||||
|
-> "Xn::name(void)" and thus some Ada minimal symbols end up
|
||||||
|
with the wrong language set. Paper over that issue here. */
|
||||||
|
if (symbol_language == language_auto
|
||||||
|
|| symbol_language == language_cplus)
|
||||||
|
symbol_language = language_ada;
|
||||||
|
|
||||||
|
completion_list_add_name (tracker,
|
||||||
|
symbol_language,
|
||||||
|
msymbol->linkage_name (),
|
||||||
|
lookup_name, text, word);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Search upwards from currently selected frame (so that we can
|
||||||
|
complete on local vars. */
|
||||||
|
|
||||||
|
for (b = get_selected_block (0); b != NULL; b = BLOCK_SUPERBLOCK (b))
|
||||||
|
{
|
||||||
|
if (!BLOCK_SUPERBLOCK (b))
|
||||||
|
surrounding_static_block = b; /* For elmin of dups */
|
||||||
|
|
||||||
|
ALL_BLOCK_SYMBOLS (b, iter, sym)
|
||||||
|
{
|
||||||
|
if (completion_skip_symbol (mode, sym))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
completion_list_add_name (tracker,
|
||||||
|
sym->language (),
|
||||||
|
sym->linkage_name (),
|
||||||
|
lookup_name, text, word);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Go through the symtabs and check the externs and statics for
|
||||||
|
symbols which match. */
|
||||||
|
|
||||||
|
for (objfile *objfile : current_program_space->objfiles ())
|
||||||
|
{
|
||||||
|
for (compunit_symtab *s : objfile->compunits ())
|
||||||
|
{
|
||||||
|
QUIT;
|
||||||
|
b = BLOCKVECTOR_BLOCK (COMPUNIT_BLOCKVECTOR (s), GLOBAL_BLOCK);
|
||||||
|
ALL_BLOCK_SYMBOLS (b, iter, sym)
|
||||||
|
{
|
||||||
|
if (completion_skip_symbol (mode, sym))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
completion_list_add_name (tracker,
|
||||||
|
sym->language (),
|
||||||
|
sym->linkage_name (),
|
||||||
|
lookup_name, text, word);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (objfile *objfile : current_program_space->objfiles ())
|
||||||
|
{
|
||||||
|
for (compunit_symtab *s : objfile->compunits ())
|
||||||
|
{
|
||||||
|
QUIT;
|
||||||
|
b = BLOCKVECTOR_BLOCK (COMPUNIT_BLOCKVECTOR (s), STATIC_BLOCK);
|
||||||
|
/* Don't do this block twice. */
|
||||||
|
if (b == surrounding_static_block)
|
||||||
|
continue;
|
||||||
|
ALL_BLOCK_SYMBOLS (b, iter, sym)
|
||||||
|
{
|
||||||
|
if (completion_skip_symbol (mode, sym))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
completion_list_add_name (tracker,
|
||||||
|
sym->language (),
|
||||||
|
sym->linkage_name (),
|
||||||
|
lookup_name, text, word);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
/* See language.h. */
|
/* See language.h. */
|
||||||
|
|
||||||
|
|
|
@ -914,7 +914,6 @@ extern const struct language_data c_language_data =
|
||||||
c_op_print_tab, /* expression operators for printing */
|
c_op_print_tab, /* expression operators for printing */
|
||||||
1, /* c-style arrays */
|
1, /* c-style arrays */
|
||||||
0, /* String lower bound */
|
0, /* String lower bound */
|
||||||
default_collect_symbol_completion_matches,
|
|
||||||
c_watch_location_expression,
|
c_watch_location_expression,
|
||||||
&c_varobj_ops,
|
&c_varobj_ops,
|
||||||
c_is_string_type_p,
|
c_is_string_type_p,
|
||||||
|
@ -1027,7 +1026,6 @@ extern const struct language_data cplus_language_data =
|
||||||
c_op_print_tab, /* expression operators for printing */
|
c_op_print_tab, /* expression operators for printing */
|
||||||
1, /* c-style arrays */
|
1, /* c-style arrays */
|
||||||
0, /* String lower bound */
|
0, /* String lower bound */
|
||||||
default_collect_symbol_completion_matches,
|
|
||||||
c_watch_location_expression,
|
c_watch_location_expression,
|
||||||
&cplus_varobj_ops,
|
&cplus_varobj_ops,
|
||||||
c_is_string_type_p,
|
c_is_string_type_p,
|
||||||
|
@ -1228,7 +1226,6 @@ extern const struct language_data asm_language_data =
|
||||||
c_op_print_tab, /* expression operators for printing */
|
c_op_print_tab, /* expression operators for printing */
|
||||||
1, /* c-style arrays */
|
1, /* c-style arrays */
|
||||||
0, /* String lower bound */
|
0, /* String lower bound */
|
||||||
default_collect_symbol_completion_matches,
|
|
||||||
c_watch_location_expression,
|
c_watch_location_expression,
|
||||||
&default_varobj_ops,
|
&default_varobj_ops,
|
||||||
c_is_string_type_p,
|
c_is_string_type_p,
|
||||||
|
@ -1296,7 +1293,6 @@ extern const struct language_data minimal_language_data =
|
||||||
c_op_print_tab, /* expression operators for printing */
|
c_op_print_tab, /* expression operators for printing */
|
||||||
1, /* c-style arrays */
|
1, /* c-style arrays */
|
||||||
0, /* String lower bound */
|
0, /* String lower bound */
|
||||||
default_collect_symbol_completion_matches,
|
|
||||||
c_watch_location_expression,
|
c_watch_location_expression,
|
||||||
&default_varobj_ops,
|
&default_varobj_ops,
|
||||||
c_is_string_type_p,
|
c_is_string_type_p,
|
||||||
|
|
|
@ -157,7 +157,6 @@ extern const struct language_data d_language_data =
|
||||||
d_op_print_tab, /* Expression operators for printing. */
|
d_op_print_tab, /* Expression operators for printing. */
|
||||||
1, /* C-style arrays. */
|
1, /* C-style arrays. */
|
||||||
0, /* String lower bound. */
|
0, /* String lower bound. */
|
||||||
default_collect_symbol_completion_matches,
|
|
||||||
c_watch_location_expression,
|
c_watch_location_expression,
|
||||||
&default_varobj_ops,
|
&default_varobj_ops,
|
||||||
c_is_string_type_p,
|
c_is_string_type_p,
|
||||||
|
|
33
gdb/f-lang.c
33
gdb/f-lang.c
|
@ -165,21 +165,6 @@ enum f_primitive_types {
|
||||||
nr_f_primitive_types
|
nr_f_primitive_types
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Consider the modules separator :: as a valid symbol name character
|
|
||||||
class. */
|
|
||||||
|
|
||||||
static void
|
|
||||||
f_collect_symbol_completion_matches (completion_tracker &tracker,
|
|
||||||
complete_symbol_mode mode,
|
|
||||||
symbol_name_match_type compare_name,
|
|
||||||
const char *text, const char *word,
|
|
||||||
enum type_code code)
|
|
||||||
{
|
|
||||||
default_collect_symbol_completion_matches_break_on (tracker, mode,
|
|
||||||
compare_name,
|
|
||||||
text, word, ":", code);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Special expression evaluation cases for Fortran. */
|
/* Special expression evaluation cases for Fortran. */
|
||||||
|
|
||||||
static struct value *
|
static struct value *
|
||||||
|
@ -593,7 +578,6 @@ extern const struct language_data f_language_data =
|
||||||
f_op_print_tab, /* expression operators for printing */
|
f_op_print_tab, /* expression operators for printing */
|
||||||
0, /* arrays are first-class (not c-style) */
|
0, /* arrays are first-class (not c-style) */
|
||||||
1, /* String lower bound */
|
1, /* String lower bound */
|
||||||
f_collect_symbol_completion_matches,
|
|
||||||
c_watch_location_expression,
|
c_watch_location_expression,
|
||||||
&default_varobj_ops,
|
&default_varobj_ops,
|
||||||
f_is_string_type_p,
|
f_is_string_type_p,
|
||||||
|
@ -698,6 +682,23 @@ public:
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* See language.h. */
|
||||||
|
|
||||||
|
void collect_symbol_completion_matches (completion_tracker &tracker,
|
||||||
|
complete_symbol_mode mode,
|
||||||
|
symbol_name_match_type name_match_type,
|
||||||
|
const char *text, const char *word,
|
||||||
|
enum type_code code) const override
|
||||||
|
{
|
||||||
|
/* Consider the modules separator :: as a valid symbol name character
|
||||||
|
class. */
|
||||||
|
default_collect_symbol_completion_matches_break_on (tracker, mode,
|
||||||
|
name_match_type,
|
||||||
|
text, word, ":",
|
||||||
|
code);
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
/* See language.h. */
|
/* See language.h. */
|
||||||
|
|
|
@ -542,7 +542,6 @@ extern const struct language_data go_language_data =
|
||||||
go_op_print_tab, /* Expression operators for printing. */
|
go_op_print_tab, /* Expression operators for printing. */
|
||||||
1, /* C-style arrays. */
|
1, /* C-style arrays. */
|
||||||
0, /* String lower bound. */
|
0, /* String lower bound. */
|
||||||
default_collect_symbol_completion_matches,
|
|
||||||
c_watch_location_expression,
|
c_watch_location_expression,
|
||||||
&default_varobj_ops,
|
&default_varobj_ops,
|
||||||
go_is_string_type_p,
|
go_is_string_type_p,
|
||||||
|
|
|
@ -779,7 +779,6 @@ extern const struct language_data unknown_language_data =
|
||||||
unk_op_print_tab, /* expression operators for printing */
|
unk_op_print_tab, /* expression operators for printing */
|
||||||
1, /* c-style arrays */
|
1, /* c-style arrays */
|
||||||
0, /* String lower bound */
|
0, /* String lower bound */
|
||||||
default_collect_symbol_completion_matches,
|
|
||||||
c_watch_location_expression,
|
c_watch_location_expression,
|
||||||
&default_varobj_ops,
|
&default_varobj_ops,
|
||||||
default_is_string_type_p,
|
default_is_string_type_p,
|
||||||
|
@ -851,7 +850,6 @@ extern const struct language_data auto_language_data =
|
||||||
unk_op_print_tab, /* expression operators for printing */
|
unk_op_print_tab, /* expression operators for printing */
|
||||||
1, /* c-style arrays */
|
1, /* c-style arrays */
|
||||||
0, /* String lower bound */
|
0, /* String lower bound */
|
||||||
default_collect_symbol_completion_matches,
|
|
||||||
c_watch_location_expression,
|
c_watch_location_expression,
|
||||||
&default_varobj_ops,
|
&default_varobj_ops,
|
||||||
default_is_string_type_p,
|
default_is_string_type_p,
|
||||||
|
|
|
@ -319,19 +319,6 @@ struct language_data
|
||||||
/* Index to use for extracting the first element of a string. */
|
/* Index to use for extracting the first element of a string. */
|
||||||
char string_lower_bound;
|
char string_lower_bound;
|
||||||
|
|
||||||
/* Add to the completion tracker all symbols which are possible
|
|
||||||
completions for TEXT. WORD is the entire command on which the
|
|
||||||
completion is being made. If CODE is TYPE_CODE_UNDEF, then all
|
|
||||||
symbols should be examined; otherwise, only STRUCT_DOMAIN
|
|
||||||
symbols whose type has a code of CODE should be matched. */
|
|
||||||
void (*la_collect_symbol_completion_matches)
|
|
||||||
(completion_tracker &tracker,
|
|
||||||
complete_symbol_mode mode,
|
|
||||||
symbol_name_match_type match_type,
|
|
||||||
const char *text,
|
|
||||||
const char *word,
|
|
||||||
enum type_code code);
|
|
||||||
|
|
||||||
/* Return an expression that can be used for a location
|
/* Return an expression that can be used for a location
|
||||||
watchpoint. TYPE is a pointer type that points to the memory
|
watchpoint. TYPE is a pointer type that points to the memory
|
||||||
to watch, and ADDR is the address of the watched memory. */
|
to watch, and ADDR is the address of the watched memory. */
|
||||||
|
@ -535,6 +522,24 @@ struct language_defn : language_data
|
||||||
return default_word_break_characters ();
|
return default_word_break_characters ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Add to the completion tracker all symbols which are possible
|
||||||
|
completions for TEXT. WORD is the entire command on which the
|
||||||
|
completion is being made. If CODE is TYPE_CODE_UNDEF, then all
|
||||||
|
symbols should be examined; otherwise, only STRUCT_DOMAIN symbols
|
||||||
|
whose type has a code of CODE should be matched. */
|
||||||
|
|
||||||
|
virtual void collect_symbol_completion_matches
|
||||||
|
(completion_tracker &tracker,
|
||||||
|
complete_symbol_mode mode,
|
||||||
|
symbol_name_match_type name_match_type,
|
||||||
|
const char *text,
|
||||||
|
const char *word,
|
||||||
|
enum type_code code) const
|
||||||
|
{
|
||||||
|
return default_collect_symbol_completion_matches_break_on
|
||||||
|
(tracker, mode, name_match_type, text, word, "", code);
|
||||||
|
}
|
||||||
|
|
||||||
/* List of all known languages. */
|
/* List of all known languages. */
|
||||||
static const struct language_defn *languages[nr_languages];
|
static const struct language_defn *languages[nr_languages];
|
||||||
|
|
||||||
|
|
|
@ -376,7 +376,6 @@ extern const struct language_data m2_language_data =
|
||||||
m2_op_print_tab, /* expression operators for printing */
|
m2_op_print_tab, /* expression operators for printing */
|
||||||
0, /* arrays are first-class (not c-style) */
|
0, /* arrays are first-class (not c-style) */
|
||||||
0, /* String lower bound */
|
0, /* String lower bound */
|
||||||
default_collect_symbol_completion_matches,
|
|
||||||
c_watch_location_expression,
|
c_watch_location_expression,
|
||||||
&default_varobj_ops,
|
&default_varobj_ops,
|
||||||
m2_is_string_type_p,
|
m2_is_string_type_p,
|
||||||
|
|
|
@ -351,7 +351,6 @@ extern const struct language_data objc_language_data =
|
||||||
objc_op_print_tab, /* Expression operators for printing */
|
objc_op_print_tab, /* Expression operators for printing */
|
||||||
1, /* C-style arrays */
|
1, /* C-style arrays */
|
||||||
0, /* String lower bound */
|
0, /* String lower bound */
|
||||||
default_collect_symbol_completion_matches,
|
|
||||||
c_watch_location_expression,
|
c_watch_location_expression,
|
||||||
&default_varobj_ops,
|
&default_varobj_ops,
|
||||||
c_is_string_type_p,
|
c_is_string_type_p,
|
||||||
|
|
|
@ -1030,7 +1030,6 @@ extern const struct language_data opencl_language_data =
|
||||||
c_op_print_tab, /* expression operators for printing */
|
c_op_print_tab, /* expression operators for printing */
|
||||||
1, /* c-style arrays */
|
1, /* c-style arrays */
|
||||||
0, /* String lower bound */
|
0, /* String lower bound */
|
||||||
default_collect_symbol_completion_matches,
|
|
||||||
c_watch_location_expression,
|
c_watch_location_expression,
|
||||||
&default_varobj_ops,
|
&default_varobj_ops,
|
||||||
c_is_string_type_p,
|
c_is_string_type_p,
|
||||||
|
|
|
@ -407,7 +407,6 @@ extern const struct language_data pascal_language_data =
|
||||||
pascal_op_print_tab, /* expression operators for printing */
|
pascal_op_print_tab, /* expression operators for printing */
|
||||||
1, /* c-style arrays */
|
1, /* c-style arrays */
|
||||||
0, /* String lower bound */
|
0, /* String lower bound */
|
||||||
default_collect_symbol_completion_matches,
|
|
||||||
c_watch_location_expression,
|
c_watch_location_expression,
|
||||||
&default_varobj_ops,
|
&default_varobj_ops,
|
||||||
pascal_is_string_type_p,
|
pascal_is_string_type_p,
|
||||||
|
|
|
@ -2062,7 +2062,6 @@ extern const struct language_data rust_language_data =
|
||||||
c_op_print_tab, /* expression operators for printing */
|
c_op_print_tab, /* expression operators for printing */
|
||||||
1, /* c-style arrays */
|
1, /* c-style arrays */
|
||||||
0, /* String lower bound */
|
0, /* String lower bound */
|
||||||
default_collect_symbol_completion_matches,
|
|
||||||
rust_watch_location_expression,
|
rust_watch_location_expression,
|
||||||
&default_varobj_ops,
|
&default_varobj_ops,
|
||||||
rust_is_string_type_p,
|
rust_is_string_type_p,
|
||||||
|
|
27
gdb/symtab.c
27
gdb/symtab.c
|
@ -5806,19 +5806,6 @@ default_collect_symbol_completion_matches_break_on
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
default_collect_symbol_completion_matches (completion_tracker &tracker,
|
|
||||||
complete_symbol_mode mode,
|
|
||||||
symbol_name_match_type name_match_type,
|
|
||||||
const char *text, const char *word,
|
|
||||||
enum type_code code)
|
|
||||||
{
|
|
||||||
return default_collect_symbol_completion_matches_break_on (tracker, mode,
|
|
||||||
name_match_type,
|
|
||||||
text, word, "",
|
|
||||||
code);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Collect all symbols (regardless of class) which begin by matching
|
/* Collect all symbols (regardless of class) which begin by matching
|
||||||
TEXT. */
|
TEXT. */
|
||||||
|
|
||||||
|
@ -5828,10 +5815,10 @@ collect_symbol_completion_matches (completion_tracker &tracker,
|
||||||
symbol_name_match_type name_match_type,
|
symbol_name_match_type name_match_type,
|
||||||
const char *text, const char *word)
|
const char *text, const char *word)
|
||||||
{
|
{
|
||||||
current_language->la_collect_symbol_completion_matches (tracker, mode,
|
current_language->collect_symbol_completion_matches (tracker, mode,
|
||||||
name_match_type,
|
name_match_type,
|
||||||
text, word,
|
text, word,
|
||||||
TYPE_CODE_UNDEF);
|
TYPE_CODE_UNDEF);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Like collect_symbol_completion_matches, but only collect
|
/* Like collect_symbol_completion_matches, but only collect
|
||||||
|
@ -5848,9 +5835,9 @@ collect_symbol_completion_matches_type (completion_tracker &tracker,
|
||||||
gdb_assert (code == TYPE_CODE_UNION
|
gdb_assert (code == TYPE_CODE_UNION
|
||||||
|| code == TYPE_CODE_STRUCT
|
|| code == TYPE_CODE_STRUCT
|
||||||
|| code == TYPE_CODE_ENUM);
|
|| code == TYPE_CODE_ENUM);
|
||||||
current_language->la_collect_symbol_completion_matches (tracker, mode,
|
current_language->collect_symbol_completion_matches (tracker, mode,
|
||||||
name_match_type,
|
name_match_type,
|
||||||
text, word, code);
|
text, word, code);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Like collect_symbol_completion_matches, but collects a list of
|
/* Like collect_symbol_completion_matches, but collects a list of
|
||||||
|
|
|
@ -1952,13 +1952,6 @@ extern void default_collect_symbol_completion_matches_break_on
|
||||||
symbol_name_match_type name_match_type,
|
symbol_name_match_type name_match_type,
|
||||||
const char *text, const char *word, const char *break_on,
|
const char *text, const char *word, const char *break_on,
|
||||||
enum type_code code);
|
enum type_code code);
|
||||||
extern void default_collect_symbol_completion_matches
|
|
||||||
(completion_tracker &tracker,
|
|
||||||
complete_symbol_mode,
|
|
||||||
symbol_name_match_type name_match_type,
|
|
||||||
const char *,
|
|
||||||
const char *,
|
|
||||||
enum type_code);
|
|
||||||
extern void collect_symbol_completion_matches
|
extern void collect_symbol_completion_matches
|
||||||
(completion_tracker &tracker,
|
(completion_tracker &tracker,
|
||||||
complete_symbol_mode mode,
|
complete_symbol_mode mode,
|
||||||
|
|
Loading…
Reference in New Issue