summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Burgess <andrew.burgess@embecosm.com>2020-05-01 22:12:12 +0100
committerAndrew Burgess <andrew.burgess@embecosm.com>2020-06-02 13:53:10 +0100
commit54f4ca4610893424746e56997115b71bc31ffd8a (patch)
tree4a660e5bde10957e3f8a5b2a2225c41a60e5a5e7
parent1fb314aaa3142711e452e66c2dced781a4d1ef87 (diff)
downloadbinutils-gdb-54f4ca4610893424746e56997115b71bc31ffd8a.tar.gz
gdb: Convert language la_lookup_transparent_type field to a method
This commit changes the language_data::la_lookup_transparent_type 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_lookup_transparent_type initializer. * c-lang.c (c_language_data): Likewise. (cplus_language_data): Likewise. (cplus_language::lookup_transparent_type): New member function. (asm_language_data): Delete la_lookup_transparent_type initializer. (minimal_language_data): Likewise. * d-lang.c (d_language_data): Likewise. * f-lang.c (f_language_data): Likewise. * go-lang.c (go_language_data): Likewise. * language.c (unknown_language_data): Likewise. (auto_language_data): Likewise. * language.h (struct language_data): Delete la_lookup_transparent_type field. (language_defn::lookup_transparent_type): New member function. * m2-lang.c (m2_language_data): Delete la_lookup_transparent_type 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 (symbol_matches_domain): Update call.
-rw-r--r--gdb/ChangeLog26
-rw-r--r--gdb/ada-lang.c1
-rw-r--r--gdb/c-lang.c10
-rw-r--r--gdb/d-lang.c1
-rw-r--r--gdb/f-lang.c1
-rw-r--r--gdb/go-lang.c1
-rw-r--r--gdb/language.c2
-rw-r--r--gdb/language.h10
-rw-r--r--gdb/m2-lang.c1
-rw-r--r--gdb/objc-lang.c1
-rw-r--r--gdb/opencl-lang.c1
-rw-r--r--gdb/p-lang.c1
-rw-r--r--gdb/rust-lang.c1
-rw-r--r--gdb/symtab.c2
14 files changed, 40 insertions, 19 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 4a0dbd1c3d3..d10a0db9c04 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,31 @@
2020-06-02 Andrew Burgess <andrew.burgess@embecosm.com>
+ * ada-lang.c (ada_language_data): Delete
+ la_lookup_transparent_type initializer.
+ * c-lang.c (c_language_data): Likewise.
+ (cplus_language_data): Likewise.
+ (cplus_language::lookup_transparent_type): New member function.
+ (asm_language_data): Delete la_lookup_transparent_type
+ initializer.
+ (minimal_language_data): Likewise.
+ * d-lang.c (d_language_data): Likewise.
+ * f-lang.c (f_language_data): Likewise.
+ * go-lang.c (go_language_data): Likewise.
+ * language.c (unknown_language_data): Likewise.
+ (auto_language_data): Likewise.
+ * language.h (struct language_data): Delete
+ la_lookup_transparent_type field.
+ (language_defn::lookup_transparent_type): New member function.
+ * m2-lang.c (m2_language_data): Delete la_lookup_transparent_type
+ 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 (symbol_matches_domain): Update call.
+
+2020-06-02 Andrew Burgess <andrew.burgess@embecosm.com>
+
* ada-lang.c (ada_language_arch_info): Delete function, move
implementation to...
(ada_language::language_arch_info): ...here, a new member
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index a1cd04b015c..7d23fd5d123 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -13988,7 +13988,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. */
- basic_lookup_transparent_type, /* lookup_transparent_type */
ada_la_decode, /* Language specific symbol demangler */
ada_sniff_from_mangled_name,
NULL, /* Language specific
diff --git a/gdb/c-lang.c b/gdb/c-lang.c
index e82d058777e..aa1efa0d806 100644
--- a/gdb/c-lang.c
+++ b/gdb/c-lang.c
@@ -911,7 +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 */
- basic_lookup_transparent_type,/* lookup_transparent_type */
NULL, /* Language specific symbol demangler */
NULL,
NULL, /* Language specific
@@ -1012,7 +1011,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_lookup_transparent_type, /* lookup_transparent_type */
gdb_demangle, /* Language specific symbol demangler */
gdb_sniff_from_mangled_name,
cp_class_name_from_physname, /* Language specific
@@ -1112,6 +1110,12 @@ public:
lai->bool_type_symbol = "bool";
lai->bool_type_default = builtin->builtin_bool;
}
+
+ /* See language.h. */
+ struct type *lookup_transparent_type (const char *name) const override
+ {
+ return cp_lookup_transparent_type (name);
+ }
};
/* The single instance of the C++ language class. */
@@ -1149,7 +1153,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 */
- basic_lookup_transparent_type,/* lookup_transparent_type */
NULL, /* Language specific symbol demangler */
NULL,
NULL, /* Language specific
@@ -1221,7 +1224,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 */
- basic_lookup_transparent_type,/* lookup_transparent_type */
NULL, /* Language specific symbol demangler */
NULL,
NULL, /* Language specific
diff --git a/gdb/d-lang.c b/gdb/d-lang.c
index 778d77313c9..8c4ee44ac97 100644
--- a/gdb/d-lang.c
+++ b/gdb/d-lang.c
@@ -165,7 +165,6 @@ extern const struct language_data d_language_data =
"this",
false, /* la_store_sym_names_in_linkage_form_p */
d_lookup_symbol_nonlocal,
- basic_lookup_transparent_type,
d_demangle, /* Language specific symbol demangler. */
d_sniff_from_mangled_name,
NULL, /* Language specific
diff --git a/gdb/f-lang.c b/gdb/f-lang.c
index 1eeb5070dee..32435fa856a 100644
--- a/gdb/f-lang.c
+++ b/gdb/f-lang.c
@@ -616,7 +616,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 */
- basic_lookup_transparent_type,/* lookup_transparent_type */
/* We could support demangling here to provide module namespaces
also for inferiors with only minimal symbol table (ELF symbols).
diff --git a/gdb/go-lang.c b/gdb/go-lang.c
index 7340a334e66..22dd02f10be 100644
--- a/gdb/go-lang.c
+++ b/gdb/go-lang.c
@@ -550,7 +550,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,
- basic_lookup_transparent_type,
go_demangle, /* Language specific symbol demangler. */
go_sniff_from_mangled_name,
NULL, /* Language specific
diff --git a/gdb/language.c b/gdb/language.c
index bc714ba85bd..227f26bc878 100644
--- a/gdb/language.c
+++ b/gdb/language.c
@@ -827,7 +827,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 */
- basic_lookup_transparent_type,/* lookup_transparent_type */
unk_lang_demangle, /* Language specific symbol demangler */
NULL,
unk_lang_class_name, /* Language specific
@@ -895,7 +894,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 */
- basic_lookup_transparent_type,/* lookup_transparent_type */
unk_lang_demangle, /* Language specific symbol demangler */
NULL,
unk_lang_class_name, /* Language specific
diff --git a/gdb/language.h b/gdb/language.h
index 4cf16c11540..505600aa957 100644
--- a/gdb/language.h
+++ b/gdb/language.h
@@ -315,9 +315,6 @@ struct language_data
const struct block *,
const domain_enum);
- /* Find the definition of the type with the given name. */
- struct type *(*la_lookup_transparent_type) (const char *);
-
/* Return demangled language symbol, or NULL. */
char *(*la_demangle) (const char *mangled, int options);
@@ -504,6 +501,13 @@ struct language_defn : language_data
virtual void language_arch_info (struct gdbarch *,
struct language_arch_info *) const = 0;
+ /* Find the definition of the type with the given name. */
+
+ virtual struct type *lookup_transparent_type (const char *name) const
+ {
+ return basic_lookup_transparent_type (name);
+ }
+
/* List of all known languages. */
static const struct language_defn *languages[nr_languages];
};
diff --git a/gdb/m2-lang.c b/gdb/m2-lang.c
index 16738e1b7e9..9ce6f2a9e68 100644
--- a/gdb/m2-lang.c
+++ b/gdb/m2-lang.c
@@ -375,7 +375,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 */
- basic_lookup_transparent_type,/* lookup_transparent_type */
NULL, /* Language specific symbol demangler */
NULL,
NULL, /* Language specific
diff --git a/gdb/objc-lang.c b/gdb/objc-lang.c
index 87e5e681ec4..040226c81d5 100644
--- a/gdb/objc-lang.c
+++ b/gdb/objc-lang.c
@@ -390,7 +390,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 */
- basic_lookup_transparent_type,/* lookup_transparent_type */
objc_demangle, /* Language specific symbol demangler */
objc_sniff_from_mangled_name,
NULL, /* Language specific
diff --git a/gdb/opencl-lang.c b/gdb/opencl-lang.c
index e8e5e8e04e3..1c41ffd8227 100644
--- a/gdb/opencl-lang.c
+++ b/gdb/opencl-lang.c
@@ -1050,7 +1050,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 */
- basic_lookup_transparent_type,/* lookup_transparent_type */
NULL, /* Language specific symbol demangler */
NULL,
NULL, /* Language specific
diff --git a/gdb/p-lang.c b/gdb/p-lang.c
index 4c13867446b..d2d8b5e9d16 100644
--- a/gdb/p-lang.c
+++ b/gdb/p-lang.c
@@ -406,7 +406,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 */
- basic_lookup_transparent_type,/* lookup_transparent_type */
NULL, /* Language specific symbol demangler */
NULL,
NULL, /* Language specific class_name_from_physname */
diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c
index dd8558a3fc8..65f2324b671 100644
--- a/gdb/rust-lang.c
+++ b/gdb/rust-lang.c
@@ -2082,7 +2082,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 */
- basic_lookup_transparent_type,/* lookup_transparent_type */
gdb_demangle, /* Language specific symbol demangler */
rust_sniff_from_mangled_name,
NULL, /* Language specific
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 5c4e282c024..f333ea6c34f 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -2722,7 +2722,7 @@ symbol_matches_domain (enum language symbol_language,
struct type *
lookup_transparent_type (const char *name)
{
- return current_language->la_lookup_transparent_type (name);
+ return current_language->lookup_transparent_type (name);
}
/* A helper for basic_lookup_transparent_type that interfaces with the