diff options
author | Andrew Burgess <andrew.burgess@embecosm.com> | 2020-05-02 09:12:30 +0100 |
---|---|---|
committer | Andrew Burgess <andrew.burgess@embecosm.com> | 2020-06-02 13:53:10 +0100 |
commit | 8e25bafe932b090850854321b816685b2462c17e (patch) | |
tree | 1880a9eb0b407aa9aa4286a8dc2f2a2a6e36d153 /gdb/c-lang.c | |
parent | 4009ee92c4ec3ee63f455c5abd761e26a819ef4a (diff) | |
download | gdb-8e25bafe932b090850854321b816685b2462c17e.zip gdb-8e25bafe932b090850854321b816685b2462c17e.tar.gz gdb-8e25bafe932b090850854321b816685b2462c17e.tar.bz2 |
gdb: Convert language la_get_compile_instance field to a method
This commit changes the language_data::la_get_compile_instance
function pointer member variable into a member function of
language_defn. Unlike previous commits converting fields of
language_data to member function in language_defn, this field is NULL
for some languages. As a result I had to change the API slightly so
that the base language_defn class provides an implementation.
There should be no user visible changes after this commit.
gdb/ChangeLog:
* ada-lang.c (ada_language_data): Delete la_get_compile_instance
initializer.
* c-lang.c (class compile_instance): Declare.
(c_language_data): Delete la_get_compile_instance initializer.
(c_language::get_compile_instance): New member function.
(cplus_language_data): Delete la_get_compile_instance initializer.
(cplus_language::get_compile_instance): New member function.
(asm_language_data): Delete la_get_compile_instance initializer.
(minimal_language_data): Likewise.
* c-lang.h (c_get_compile_context): Update comment.
(cplus_get_compile_context): Update comment.
* compile/compile.c (compile_to_object): Update calls, don't rely
on function pointer being NULL.
* d-lang.c (d_language_data): Delete la_get_compile_instance
initializer.
* 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 (language_data): Delete la_get_compile_instance field.
(language_defn::get_compile_instance): New member function.
* m2-lang.c (m2_language_data): Delete la_get_compile_instance
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.
Diffstat (limited to 'gdb/c-lang.c')
-rw-r--r-- | gdb/c-lang.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/gdb/c-lang.c b/gdb/c-lang.c index bfd45f4..eb9ebdb 100644 --- a/gdb/c-lang.c +++ b/gdb/c-lang.c @@ -37,6 +37,8 @@ #include "gdbcore.h" #include "gdbarch.h" +class compile_instance; + /* Given a C string type, STR_TYPE, return the corresponding target character set name. */ @@ -924,7 +926,6 @@ extern const struct language_data c_language_data = NULL, /* la_get_symbol_name_matcher */ default_search_name_hash, &c_varobj_ops, - c_get_compile_context, c_compute_program, c_is_string_type_p, "{...}" /* la_struct_too_deep_ellipsis */ @@ -945,6 +946,12 @@ public: { c_language_arch_info (gdbarch, lai); } + + /* See language.h. */ + compile_instance *get_compile_instance () const override + { + return c_get_compile_context (); + } }; /* Single instance of the C language class. */ @@ -1023,7 +1030,6 @@ extern const struct language_data cplus_language_data = cp_get_symbol_name_matcher, cp_search_name_hash, &cplus_varobj_ops, - cplus_get_compile_context, cplus_compute_program, c_is_string_type_p, "{...}" /* la_struct_too_deep_ellipsis */ @@ -1114,6 +1120,12 @@ public: { return cp_lookup_transparent_type (name); } + + /* See language.h. */ + compile_instance *get_compile_instance () const override + { + return cplus_get_compile_context (); + } }; /* The single instance of the C++ language class. */ @@ -1165,7 +1177,6 @@ extern const struct language_data asm_language_data = default_search_name_hash, &default_varobj_ops, NULL, - NULL, c_is_string_type_p, "{...}" /* la_struct_too_deep_ellipsis */ }; @@ -1235,7 +1246,6 @@ extern const struct language_data minimal_language_data = default_search_name_hash, &default_varobj_ops, NULL, - NULL, c_is_string_type_p, "{...}" /* la_struct_too_deep_ellipsis */ }; |