aboutsummaryrefslogtreecommitdiff
path: root/gdb/language.h
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2020-03-13 17:39:52 -0600
committerTom Tromey <tom@tromey.com>2020-03-13 18:03:39 -0600
commit2b4e573d62be3a59057895054b1b5faa67557ce6 (patch)
treead488a86ece918a596682abee9dc414ad57fe2af /gdb/language.h
parenta1f6a07c3d1d3a34d36d4e49f0fd3c66554e41b2 (diff)
downloadgdb-2b4e573d62be3a59057895054b1b5faa67557ce6.zip
gdb-2b4e573d62be3a59057895054b1b5faa67557ce6.tar.gz
gdb-2b4e573d62be3a59057895054b1b5faa67557ce6.tar.bz2
Introduce la_value_print_inner
The plan for removing val_print is, essentially, to first duplicate printing code as needed to use the value API; and then remove the val_print code. This makes it possible to do the changes incrementally while keeping everything working. This adds a new la_value_print_inner function pointer to struct language_defn. Eventually this will replace la_val_print. This patch also changes printing to prefer this API, when available -- but no language defines it yet. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * valprint.c (do_val_print): Call la_value_print_inner, if available. * rust-lang.c (rust_language_defn): Update. * p-lang.c (pascal_language_defn): Update. * opencl-lang.c (opencl_language_defn): Update. * objc-lang.c (objc_language_defn): Update. * m2-lang.c (m2_language_defn): Update. * language.h (struct language_defn) <la_value_print_inner>: New member. * language.c (unknown_language_defn, auto_language_defn): Update. * go-lang.c (go_language_defn): Update. * f-lang.c (f_language_defn): Update. * d-lang.c (d_language_defn): Update. * c-lang.c (c_language_defn, cplus_language_defn) (asm_language_defn, minimal_language_defn): Update. * ada-lang.c (ada_language_defn): Update.
Diffstat (limited to 'gdb/language.h')
-rw-r--r--gdb/language.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/gdb/language.h b/gdb/language.h
index b344a4a..c6d5496 100644
--- a/gdb/language.h
+++ b/gdb/language.h
@@ -272,6 +272,13 @@ struct language_defn
struct value *val,
const struct value_print_options *options);
+ /* Print a value using syntax appropriate for this language.
+ RECURSE is the recursion depth. It is zero-based. */
+
+ void (*la_value_print_inner) (struct value *, struct ui_file *,
+ int recurse,
+ const struct value_print_options *);
+
/* Print a top-level value using syntax appropriate for this language. */
void (*la_value_print) (struct value *, struct ui_file *,