diff options
author | Andrew Burgess <andrew.burgess@embecosm.com> | 2020-06-01 10:53:05 +0100 |
---|---|---|
committer | Andrew Burgess <andrew.burgess@embecosm.com> | 2020-06-17 09:25:09 +0100 |
commit | eff93b4d48eb0e79b7879475bb47eec55dbb41be (patch) | |
tree | 4f6d1c1c724b5faf2a1d2966e8401b271e2f12fc | |
parent | de54374205650be71237ce51ef7981d30ddd78dc (diff) | |
download | gdb-eff93b4d48eb0e79b7879475bb47eec55dbb41be.zip gdb-eff93b4d48eb0e79b7879475bb47eec55dbb41be.tar.gz gdb-eff93b4d48eb0e79b7879475bb47eec55dbb41be.tar.bz2 |
gdb: Convert language la_class_name_from_physname field to a method
This commit changes the language_data::la_class_name_from_physname 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_language_data) Delete
la_class_name_from_physname initializer.
* c-lang.c (c_language_data): Likewise.
(cplus_language_data): Likewise.
(cplus_language::class_name_from_physname): New member function.
(asm_language_data): Delete la_class_name_from_physname
initializer.
(minimal_language_data): Likewise.
* d-lang.c (d_language_data): Likewise.
* dwarf2/read.c (guess_partial_die_structure_name): Update to call
method on language_defn class.
(guess_full_die_structure_name): Likewise.
* f-lang.c (f_language_data): Delete la_class_name_from_physname
initializer.
* go-lang.c (go_language_data): Likewise.
* language.c (language_class_name_from_physname): Delete.
(unk_lang_class_name): Delete.
(unknown_language_data): Delete la_class_name_from_physname
initializer.
(auto_language_data): Likewise.
* language.h (language_data): Delete la_class_name_from_physname
field.
(language_defn::class_name_from_physname): New function.
(language_class_name_from_physname): Delete declaration.
* m2-lang.c (m2_language_data): Delete la_class_name_from_physname
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.
-rw-r--r-- | gdb/ChangeLog | 33 | ||||
-rw-r--r-- | gdb/ada-lang.c | 2 | ||||
-rw-r--r-- | gdb/c-lang.c | 15 | ||||
-rw-r--r-- | gdb/d-lang.c | 2 | ||||
-rw-r--r-- | gdb/dwarf2/read.c | 7 | ||||
-rw-r--r-- | gdb/f-lang.c | 2 | ||||
-rw-r--r-- | gdb/go-lang.c | 2 | ||||
-rw-r--r-- | gdb/language.c | 19 | ||||
-rw-r--r-- | gdb/language.h | 13 | ||||
-rw-r--r-- | gdb/m2-lang.c | 2 | ||||
-rw-r--r-- | gdb/objc-lang.c | 2 | ||||
-rw-r--r-- | gdb/opencl-lang.c | 2 | ||||
-rw-r--r-- | gdb/p-lang.c | 1 | ||||
-rw-r--r-- | gdb/rust-lang.c | 2 |
14 files changed, 49 insertions, 55 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f9d989d..2aafc0a 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,36 @@ +2020-06-17 Andrew Burgess <andrew.burgess@embecosm.com> + + * ada-lang.c (ada_language_data) Delete + la_class_name_from_physname initializer. + * c-lang.c (c_language_data): Likewise. + (cplus_language_data): Likewise. + (cplus_language::class_name_from_physname): New member function. + (asm_language_data): Delete la_class_name_from_physname + initializer. + (minimal_language_data): Likewise. + * d-lang.c (d_language_data): Likewise. + * dwarf2/read.c (guess_partial_die_structure_name): Update to call + method on language_defn class. + (guess_full_die_structure_name): Likewise. + * f-lang.c (f_language_data): Delete la_class_name_from_physname + initializer. + * go-lang.c (go_language_data): Likewise. + * language.c (language_class_name_from_physname): Delete. + (unk_lang_class_name): Delete. + (unknown_language_data): Delete la_class_name_from_physname + initializer. + (auto_language_data): Likewise. + * language.h (language_data): Delete la_class_name_from_physname + field. + (language_defn::class_name_from_physname): New function. + (language_class_name_from_physname): Delete declaration. + * m2-lang.c (m2_language_data): Delete la_class_name_from_physname + 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. + 2020-06-16 Tom Tromey <tom@tromey.com> * tui/tui-data.h (STATUS_NAME): New macro. diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index c5e28c5..96cb865 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -13914,8 +13914,6 @@ extern const struct language_data ada_language_data = NULL, /* name_of_this */ true, /* la_store_sym_names_in_linkage_form_p */ ada_lookup_symbol_nonlocal, /* Looking up non-local symbols. */ - NULL, /* Language specific - class_name_from_physname */ ada_op_print_tab, /* expression operators for printing */ 0, /* c-style arrays */ 1, /* String lower bound */ diff --git a/gdb/c-lang.c b/gdb/c-lang.c index 53137e8..bb49706 100644 --- a/gdb/c-lang.c +++ b/gdb/c-lang.c @@ -911,8 +911,6 @@ extern const struct language_data c_language_data = NULL, /* name_of_this */ true, /* la_store_sym_names_in_linkage_form_p */ basic_lookup_symbol_nonlocal, /* lookup_symbol_nonlocal */ - NULL, /* Language specific - class_name_from_physname */ c_op_print_tab, /* expression operators for printing */ 1, /* c-style arrays */ 0, /* String lower bound */ @@ -1019,8 +1017,6 @@ extern const struct language_data cplus_language_data = "this", /* name_of_this */ false, /* la_store_sym_names_in_linkage_form_p */ cp_lookup_symbol_nonlocal, /* lookup_symbol_nonlocal */ - cp_class_name_from_physname, /* Language specific - class_name_from_physname */ c_op_print_tab, /* expression operators for printing */ 1, /* c-style arrays */ 0, /* String lower bound */ @@ -1163,6 +1159,13 @@ public: { return cplus_skip_trampoline (fi, pc); } + + /* See language.h. */ + + char *class_name_from_physname (const char *physname) const override + { + return cp_class_name_from_physname (physname); + } }; /* The single instance of the C++ language class. */ @@ -1198,8 +1201,6 @@ extern const struct language_data asm_language_data = NULL, /* name_of_this */ true, /* la_store_sym_names_in_linkage_form_p */ basic_lookup_symbol_nonlocal, /* lookup_symbol_nonlocal */ - NULL, /* Language specific - class_name_from_physname */ c_op_print_tab, /* expression operators for printing */ 1, /* c-style arrays */ 0, /* String lower bound */ @@ -1271,8 +1272,6 @@ extern const struct language_data minimal_language_data = NULL, /* name_of_this */ true, /* la_store_sym_names_in_linkage_form_p */ basic_lookup_symbol_nonlocal, /* lookup_symbol_nonlocal */ - NULL, /* Language specific - class_name_from_physname */ c_op_print_tab, /* expression operators for printing */ 1, /* c-style arrays */ 0, /* String lower bound */ diff --git a/gdb/d-lang.c b/gdb/d-lang.c index 81e3aac..6dacf8c 100644 --- a/gdb/d-lang.c +++ b/gdb/d-lang.c @@ -154,8 +154,6 @@ extern const struct language_data d_language_data = "this", false, /* la_store_sym_names_in_linkage_form_p */ d_lookup_symbol_nonlocal, - NULL, /* Language specific - class_name_from_physname. */ d_op_print_tab, /* Expression operators for printing. */ 1, /* C-style arrays. */ 0, /* String lower bound. */ diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index e3073fe..d15eba9 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -18874,8 +18874,8 @@ guess_partial_die_structure_name (struct partial_die_info *struct_pdi, && child_pdi->linkage_name != NULL) { gdb::unique_xmalloc_ptr<char> actual_class_name - (language_class_name_from_physname (cu->language_defn, - child_pdi->linkage_name)); + (cu->language_defn->class_name_from_physname + (child_pdi->linkage_name)); if (actual_class_name != NULL) { struct objfile *objfile = cu->per_objfile->objfile; @@ -21715,8 +21715,7 @@ guess_full_die_structure_name (struct die_info *die, struct dwarf2_cu *cu) if (linkage_name != NULL) { gdb::unique_xmalloc_ptr<char> actual_name - (language_class_name_from_physname (cu->language_defn, - linkage_name)); + (cu->language_defn->class_name_from_physname (linkage_name)); const char *name = NULL; if (actual_name != NULL) diff --git a/gdb/f-lang.c b/gdb/f-lang.c index 90a794e..07ee2c8 100644 --- a/gdb/f-lang.c +++ b/gdb/f-lang.c @@ -614,8 +614,6 @@ extern const struct language_data f_language_data = NULL, /* name_of_this */ false, /* la_store_sym_names_in_linkage_form_p */ cp_lookup_symbol_nonlocal, /* lookup_symbol_nonlocal */ - NULL, /* Language specific - class_name_from_physname */ f_op_print_tab, /* expression operators for printing */ 0, /* arrays are first-class (not c-style) */ 1, /* String lower bound */ diff --git a/gdb/go-lang.c b/gdb/go-lang.c index 6a60e18..7b8d4a5 100644 --- a/gdb/go-lang.c +++ b/gdb/go-lang.c @@ -539,8 +539,6 @@ extern const struct language_data go_language_data = NULL, /* name_of_this */ false, /* la_store_sym_names_in_linkage_form_p */ basic_lookup_symbol_nonlocal, - NULL, /* Language specific - class_name_from_physname. */ go_op_print_tab, /* Expression operators for printing. */ 1, /* C-style arrays. */ 0, /* String lower bound. */ diff --git a/gdb/language.c b/gdb/language.c index ba4d96c..ade5109 100644 --- a/gdb/language.c +++ b/gdb/language.c @@ -589,16 +589,6 @@ language_demangle (const struct language_defn *current_language, return NULL; } -/* Return class name from physname or NULL. */ -char * -language_class_name_from_physname (const struct language_defn *lang, - const char *physname) -{ - if (lang != NULL && lang->la_class_name_from_physname) - return lang->la_class_name_from_physname (physname); - return NULL; -} - /* Return information about whether TYPE should be passed (and returned) by reference at the language level. */ @@ -739,11 +729,6 @@ unk_lang_value_print (struct value *val, struct ui_file *stream, "function unk_lang_value_print called.")); } -static char *unk_lang_class_name (const char *mangled) -{ - return NULL; -} - static const struct op_print unk_op_print_tab[] = { {NULL, OP_NULL, PREC_NULL, 0} @@ -783,8 +768,6 @@ extern const struct language_data unknown_language_data = "this", /* name_of_this */ true, /* store_sym_names_in_linkage_form_p */ basic_lookup_symbol_nonlocal, /* lookup_symbol_nonlocal */ - unk_lang_class_name, /* Language specific - class_name_from_physname */ unk_op_print_tab, /* expression operators for printing */ 1, /* c-style arrays */ 0, /* String lower bound */ @@ -860,8 +843,6 @@ extern const struct language_data auto_language_data = "this", /* name_of_this */ false, /* store_sym_names_in_linkage_form_p */ basic_lookup_symbol_nonlocal, /* lookup_symbol_nonlocal */ - unk_lang_class_name, /* Language specific - class_name_from_physname */ unk_op_print_tab, /* expression operators for printing */ 1, /* c-style arrays */ 0, /* String lower bound */ diff --git a/gdb/language.h b/gdb/language.h index 05ad132..36fc2c5 100644 --- a/gdb/language.h +++ b/gdb/language.h @@ -304,9 +304,6 @@ struct language_data const struct block *, const domain_enum); - /* Return class name of a mangled method name or NULL. */ - char *(*la_class_name_from_physname) (const char *physname); - /* Table for printing expressions. */ const struct op_print *la_op_print_tab; @@ -523,6 +520,12 @@ struct language_defn : language_data return (CORE_ADDR) 0; } + /* Return class name of a mangled method name or NULL. */ + virtual char *class_name_from_physname (const char *physname) const + { + return nullptr; + } + /* List of all known languages. */ static const struct language_defn *languages[nr_languages]; }; @@ -677,10 +680,6 @@ extern CORE_ADDR skip_language_trampoline (struct frame_info *, CORE_ADDR pc); extern char *language_demangle (const struct language_defn *current_language, const char *mangled, int options); -/* Return class name from physname, or NULL. */ -extern char *language_class_name_from_physname (const struct language_defn *, - const char *physname); - /* Splitting strings into words. */ extern const char *default_word_break_characters (void); diff --git a/gdb/m2-lang.c b/gdb/m2-lang.c index 3e1b74e..6cb3f7d 100644 --- a/gdb/m2-lang.c +++ b/gdb/m2-lang.c @@ -373,8 +373,6 @@ extern const struct language_data m2_language_data = NULL, /* name_of_this */ false, /* la_store_sym_names_in_linkage_form_p */ basic_lookup_symbol_nonlocal, /* lookup_symbol_nonlocal */ - NULL, /* Language specific - class_name_from_physname */ m2_op_print_tab, /* expression operators for printing */ 0, /* arrays are first-class (not c-style) */ 0, /* String lower bound */ diff --git a/gdb/objc-lang.c b/gdb/objc-lang.c index ff028fc..631b205 100644 --- a/gdb/objc-lang.c +++ b/gdb/objc-lang.c @@ -348,8 +348,6 @@ extern const struct language_data objc_language_data = "self", /* name_of_this */ false, /* la_store_sym_names_in_linkage_form_p */ basic_lookup_symbol_nonlocal, /* lookup_symbol_nonlocal */ - NULL, /* Language specific - class_name_from_physname */ objc_op_print_tab, /* Expression operators for printing */ 1, /* C-style arrays */ 0, /* String lower bound */ diff --git a/gdb/opencl-lang.c b/gdb/opencl-lang.c index eaf61c3..ab19acf 100644 --- a/gdb/opencl-lang.c +++ b/gdb/opencl-lang.c @@ -1027,8 +1027,6 @@ extern const struct language_data opencl_language_data = NULL, /* name_of_this */ false, /* la_store_sym_names_in_linkage_form_p */ basic_lookup_symbol_nonlocal, /* lookup_symbol_nonlocal */ - NULL, /* Language specific - class_name_from_physname */ c_op_print_tab, /* expression operators for printing */ 1, /* c-style arrays */ 0, /* String lower bound */ diff --git a/gdb/p-lang.c b/gdb/p-lang.c index f3d10d0..2f77d7a 100644 --- a/gdb/p-lang.c +++ b/gdb/p-lang.c @@ -404,7 +404,6 @@ extern const struct language_data pascal_language_data = "this", /* name_of_this */ false, /* la_store_sym_names_in_linkage_form_p */ basic_lookup_symbol_nonlocal, /* lookup_symbol_nonlocal */ - NULL, /* Language specific class_name_from_physname */ pascal_op_print_tab, /* expression operators for printing */ 1, /* c-style arrays */ 0, /* String lower bound */ diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c index 449dfca..ada721f 100644 --- a/gdb/rust-lang.c +++ b/gdb/rust-lang.c @@ -2059,8 +2059,6 @@ extern const struct language_data rust_language_data = NULL, /* name_of_this */ false, /* la_store_sym_names_in_linkage_form_p */ rust_lookup_symbol_nonlocal, /* lookup_symbol_nonlocal */ - NULL, /* Language specific - class_name_from_physname */ c_op_print_tab, /* expression operators for printing */ 1, /* c-style arrays */ 0, /* String lower bound */ |