aboutsummaryrefslogtreecommitdiff
path: root/gdb/c-lang.c
diff options
context:
space:
mode:
authorAndrew Burgess <andrew.burgess@embecosm.com>2020-05-02 09:12:30 +0100
committerAndrew Burgess <andrew.burgess@embecosm.com>2020-06-02 13:53:10 +0100
commit8e25bafe932b090850854321b816685b2462c17e (patch)
tree1880a9eb0b407aa9aa4286a8dc2f2a2a6e36d153 /gdb/c-lang.c
parent4009ee92c4ec3ee63f455c5abd761e26a819ef4a (diff)
downloadgdb-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.c18
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 */
};