aboutsummaryrefslogtreecommitdiff
path: root/gdb/language.c
diff options
context:
space:
mode:
authorAndrew Burgess <andrew.burgess@embecosm.com>2020-06-01 15:21:33 +0100
committerAndrew Burgess <andrew.burgess@embecosm.com>2020-06-17 09:25:11 +0100
commita1d1fa3e417b4bd8e79e2a731f9c6089e2d5f747 (patch)
tree4b2e204726b469774d366ec68145edba4c485d91 /gdb/language.c
parentf16a9f57b50af64ccb9652d20cc934fc5e80cd20 (diff)
downloadgdb-a1d1fa3e417b4bd8e79e2a731f9c6089e2d5f747.zip
gdb-a1d1fa3e417b4bd8e79e2a731f9c6089e2d5f747.tar.gz
gdb-a1d1fa3e417b4bd8e79e2a731f9c6089e2d5f747.tar.bz2
gdb: Convert language la_value_print field to a method
This commit changes the language_data::la_value_print 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_value_print initializer. (ada_language::value_print): New member function. * c-lang.c (c_language_data): Delete la_value_print initializer. (cplus_language_data): Likewise. (asm_language_data): Likewise. (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 (unk_lang_value_print): Delete. (language_defn::value_print): Define new member function. (unknown_language_data): Delete la_value_print initializer. (unknown_language::value_print): New member function. (auto_language_data): Delete la_value_print initializer. (auto_language::value_print): New member function. * language.h (language_data): Delete la_value_print field. (language_defn::value_print): Declare new member function. (LA_VALUE_PRINT): Update call to value_print. * m2-lang.c (m2_language_data): Delete la_value_print initializer. * objc-lang.c (objc_language_data): Likewise. * opencl-lang.c (opencl_language_data): Likewise. * p-lang.c (pascal_language_data): Likewise. (pascal_language::value_print): New member function. * rust-lang.c (rust_language_data): Delete la_value_print initializer.
Diffstat (limited to 'gdb/language.c')
-rw-r--r--gdb/language.c38
1 files changed, 25 insertions, 13 deletions
diff --git a/gdb/language.c b/gdb/language.c
index 6320577..5b47a49 100644
--- a/gdb/language.c
+++ b/gdb/language.c
@@ -57,9 +57,6 @@ static void unk_lang_emit_char (int c, struct type *type,
static void unk_lang_printchar (int c, struct type *type,
struct ui_file *stream);
-static void unk_lang_value_print (struct value *, struct ui_file *,
- const struct value_print_options *);
-
/* The current (default at startup) state of type and range checking.
(If the modes are set to "auto", though, these are changed based
on the default language at startup, and then again based on the
@@ -635,6 +632,15 @@ language_defn::watch_location_expression (struct type *type,
(xstrprintf ("* (%s *) %s", name.c_str (), core_addr_to_string (addr)));
}
+/* See language.h. */
+
+void
+language_defn::value_print (struct value *val, struct ui_file *stream,
+ const struct value_print_options *options) const
+{
+ return c_value_print (val, stream, options);
+}
+
/* The default implementation of the get_symbol_name_matcher_inner method
from the language_defn class. Matches with strncmp_iw. */
@@ -742,14 +748,6 @@ unk_lang_value_print_inner (struct value *val,
"function unk_lang_value_print_inner called."));
}
-static void
-unk_lang_value_print (struct value *val, struct ui_file *stream,
- const struct value_print_options *options)
-{
- error (_("internal error - unimplemented "
- "function unk_lang_value_print called."));
-}
-
static const struct op_print unk_op_print_tab[] =
{
{NULL, OP_NULL, PREC_NULL, 0}
@@ -785,7 +783,6 @@ extern const struct language_data unknown_language_data =
unk_lang_emit_char,
default_print_typedef, /* Print a typedef using appropriate syntax */
unk_lang_value_print_inner, /* la_value_print_inner */
- unk_lang_value_print, /* Print a top-level value */
"this", /* name_of_this */
true, /* store_sym_names_in_linkage_form_p */
basic_lookup_symbol_nonlocal, /* lookup_symbol_nonlocal */
@@ -829,6 +826,14 @@ public:
/* The unknown language just uses the C++ demangler. */
return gdb_demangle (mangled, options);
}
+
+ /* See language.h. */
+
+ void value_print (struct value *val, struct ui_file *stream,
+ const struct value_print_options *options) const override
+ {
+ error (_("unimplemented unknown_language::value_print called"));
+ }
};
/* Single instance of the unknown language class. */
@@ -855,7 +860,6 @@ extern const struct language_data auto_language_data =
unk_lang_emit_char,
default_print_typedef, /* Print a typedef using appropriate syntax */
unk_lang_value_print_inner, /* la_value_print_inner */
- unk_lang_value_print, /* Print a top-level value */
"this", /* name_of_this */
false, /* store_sym_names_in_linkage_form_p */
basic_lookup_symbol_nonlocal, /* lookup_symbol_nonlocal */
@@ -899,6 +903,14 @@ public:
/* The auto language just uses the C++ demangler. */
return gdb_demangle (mangled, options);
}
+
+ /* See language.h. */
+
+ void value_print (struct value *val, struct ui_file *stream,
+ const struct value_print_options *options) const override
+ {
+ error (_("unimplemented auto_language::value_print called"));
+ }
};
/* Single instance of the fake "auto" language. */