Introduce generic_value_print

This introduces generic_value_print, which is a value-based analogue
to generic_val_print.  For now this is unused and simply calls
generic_val_print, but subsequent patches will both change this
function to work using the value API directly, and convert callers of
generic_val_print to call this instead.

gdb/ChangeLog
2020-03-13  Tom Tromey  <tom@tromey.com>

	* valprint.h (generic_value_print): Declare.
	* valprint.c (generic_value_print): New function.
This commit is contained in:
Tom Tromey 2020-03-13 17:39:52 -06:00
parent 2b4e573d62
commit 156bfec999
3 changed files with 28 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2020-03-13 Tom Tromey <tom@tromey.com>
* valprint.h (generic_value_print): Declare.
* valprint.c (generic_value_print): New function.
2020-03-13 Tom Tromey <tom@tromey.com>
* valprint.c (do_val_print): Call la_value_print_inner, if

View File

@ -1033,6 +1033,18 @@ generic_val_print (struct type *type,
}
}
/* See valprint.h. */
void
generic_value_print (struct value *val, struct ui_file *stream, int recurse,
const struct value_print_options *options,
const struct generic_val_print_decorations *decorations)
{
generic_val_print (value_type (val), value_embedded_offset (val),
value_address (val), stream, recurse, val, options,
decorations);
}
/* Helper function for val_print and common_val_print that does the
work. Arguments are as to val_print, but FULL_VALUE, if given, is
the value to be printed. */

View File

@ -211,6 +211,17 @@ extern void generic_val_print (struct type *type,
const struct value_print_options *options,
const struct generic_val_print_decorations *);
/* Print a value in a generic way. VAL is the value, STREAM is where
to print it, RECURSE is the recursion depth, OPTIONS describe how
the printing should be done, and D is the language-specific
decorations object. Note that structs and unions cannot be printed
by this function. */
extern void generic_value_print (struct value *val, struct ui_file *stream,
int recurse,
const struct value_print_options *options,
const struct generic_val_print_decorations *d);
extern void generic_emit_char (int c, struct type *type, struct ui_file *stream,
int quoter, const char *encoding);