Remove parameter valaddr from la_val_print

Nowadays, we pass both val and return value of
value_contents_for_printing (val) to la_val_print.  The latter is
unnecessary.  This patch removes the second parameter of la_val_print,
and get valaddr in each language's implementation by calling
value_contents_for_printing.  Since value_contents_for_printing calls
value_fetch_lazy, I also make VAL non-const.

Note that
 - I don't clean up the valaddr usages in each language's routines,
 - I don't remove valaddr from apply_ext_lang_val_pretty_printer, and
   extension language ops apply_val_pretty_printer.

They can be done in followup patches.

gdb:

2016-11-08  Yao Qi  <yao.qi@linaro.org>

	* ada-lang.h (ada_val_print): Remove second parameter.  Remove
	const from "struct value *".
	* ada-valprint.c (print_field_values): Remove const from
	"struct value *".
	(val_print_packed_array_elements): Likewise.
	(print_variant_part): Likewise.
	(ada_val_print_string): Likewise.
	(ada_val_print_gnat_array): Likewise.
	(ada_val_print_ptr): Likewise.
	(ada_val_print_num): Likewise.
	(ada_val_print_enum): Likewise.
	(ada_val_print_flt): Likewise.
	(ada_val_print_union): Likewise.
	(ada_val_print_struct_union): Likewise.
	(ada_val_print_ref): Likewise.
	(ada_val_print_1): Remove second parameter.  Remove const from
	"struct value *".
	(ada_val_print): Likewise.
	* c-lang.h (c_val_print): Likewise.
	* c-valprint.c (c_val_print_array): Remove const from
	"struct value *".
	(c_val_print_ptr): Likewise.
	(c_val_print_struct): Likewise.
	(c_val_print_union): Likewise.
	(c_val_print_int): Likewise.
	(c_val_print_memberptr): Likewise.
	(c_val_print): Remove second parameter.  Remove const from
	"struct value *".  All callers updated.
	* cp-valprint.c (cp_print_value): Remove const from
	"struct value *".
	(cp_print_value_fields): Likewise.
	(c_val_print_value): Likewise.
	* d-lang.h (d_val_print): Remove second parameter.  Remove const
	from "struct value *".
	* d-valprint.c (dynamic_array_type): Likewise.
	(d_val_print): Likewise.
	* f-lang.h (f_val_print): Likewise.
	* f-valprint.c (f_val_print): Likewise.
	* go-lang.h (go_val_print): Likewise.
	* go-valprint.c (print_go_string): Likewise.
	(go_val_print): Likewise.
	* language.c (unk_lang_val_print): Likewise.
	* language.h (struct language_defn) <la_val_print>: Likewise.
	Update comments.
	(LA_VAL_PRINT): Remove.
	* m2-lang.h (m2_val_print): Remove const from
	"struct value *".
	* m2-valprint.c (m2_print_array_contents): Likewise.
	(m2_val_print): Likewise.
	* p-lang.h (pascal_val_print): Remove second parameter.  Remove
	const from "struct value *".
	(pascal_object_print_value_fields): Likewise.
	* p-valprint.c (pascal_val_print): Likewise.
	(pascal_object_print_value_fields): Likewise.
	(pascal_object_print_value): Likewise.
	* rust-lang.c (rust_get_disr_info): Likewise.
	(val_print_struct): Likewise.
	(rust_val_print): Likewise.
	* valprint.c (generic_val_print_array): Likewise.
	(generic_val_print_ptr): Likewise.
	(generic_val_print_memberptr): Likewise.
	(generic_val_print_ref): Likewise.
	(generic_val_print_enum): Likewise.
	(generic_val_print_flags): Likewise.
	(generic_val_print_func): Likewise.
	(generic_val_print_bool): Likewise.
	(generic_val_print_int): Likewise.
	(generic_val_print_char): Likewise.
	(generic_val_print_float): Likewise.
	(generic_val_print_decfloat): Likewise.
	(generic_val_print_complex): Likewise.
	(generic_val_print): Likewise.
	(val_print): Likewise.
	(common_val_print): Likewise.
	(val_print_type_code_flags): Likewise.
	(val_print_scalar_formatted): Likewise.
	(val_print_array_elements): Likewise.
	* valprint.h (val_print_array_elements): Update declaration.
	(val_print_scalar_formatted): Likewise.
	(generic_val_print): Likewise.
	* value.h (val_print): Likewise.
This commit is contained in:
Yao Qi 2016-11-08 16:02:42 +00:00
parent cc977dc7d5
commit e8b24d9ff5
28 changed files with 334 additions and 235 deletions

View File

@ -1,3 +1,87 @@
2016-11-08 Yao Qi <yao.qi@linaro.org>
* ada-lang.h (ada_val_print): Remove second parameter. Remove
const from "struct value *".
* ada-valprint.c (print_field_values): Remove const from
"struct value *".
(val_print_packed_array_elements): Likewise.
(print_variant_part): Likewise.
(ada_val_print_string): Likewise.
(ada_val_print_gnat_array): Likewise.
(ada_val_print_ptr): Likewise.
(ada_val_print_num): Likewise.
(ada_val_print_enum): Likewise.
(ada_val_print_flt): Likewise.
(ada_val_print_union): Likewise.
(ada_val_print_struct_union): Likewise.
(ada_val_print_ref): Likewise.
(ada_val_print_1): Remove second parameter. Remove const from
"struct value *".
(ada_val_print): Likewise.
* c-lang.h (c_val_print): Likewise.
* c-valprint.c (c_val_print_array): Remove const from
"struct value *".
(c_val_print_ptr): Likewise.
(c_val_print_struct): Likewise.
(c_val_print_union): Likewise.
(c_val_print_int): Likewise.
(c_val_print_memberptr): Likewise.
(c_val_print): Remove second parameter. Remove const from
"struct value *". All callers updated.
* cp-valprint.c (cp_print_value): Remove const from
"struct value *".
(cp_print_value_fields): Likewise.
(c_val_print_value): Likewise.
* d-lang.h (d_val_print): Remove second parameter. Remove const
from "struct value *".
* d-valprint.c (dynamic_array_type): Likewise.
(d_val_print): Likewise.
* f-lang.h (f_val_print): Likewise.
* f-valprint.c (f_val_print): Likewise.
* go-lang.h (go_val_print): Likewise.
* go-valprint.c (print_go_string): Likewise.
(go_val_print): Likewise.
* language.c (unk_lang_val_print): Likewise.
* language.h (struct language_defn) <la_val_print>: Likewise.
Update comments.
(LA_VAL_PRINT): Remove.
* m2-lang.h (m2_val_print): Remove const from
"struct value *".
* m2-valprint.c (m2_print_array_contents): Likewise.
(m2_val_print): Likewise.
* p-lang.h (pascal_val_print): Remove second parameter. Remove
const from "struct value *".
(pascal_object_print_value_fields): Likewise.
* p-valprint.c (pascal_val_print): Likewise.
(pascal_object_print_value_fields): Likewise.
(pascal_object_print_value): Likewise.
* rust-lang.c (rust_get_disr_info): Likewise.
(val_print_struct): Likewise.
(rust_val_print): Likewise.
* valprint.c (generic_val_print_array): Likewise.
(generic_val_print_ptr): Likewise.
(generic_val_print_memberptr): Likewise.
(generic_val_print_ref): Likewise.
(generic_val_print_enum): Likewise.
(generic_val_print_flags): Likewise.
(generic_val_print_func): Likewise.
(generic_val_print_bool): Likewise.
(generic_val_print_int): Likewise.
(generic_val_print_char): Likewise.
(generic_val_print_float): Likewise.
(generic_val_print_decfloat): Likewise.
(generic_val_print_complex): Likewise.
(generic_val_print): Likewise.
(val_print): Likewise.
(common_val_print): Likewise.
(val_print_type_code_flags): Likewise.
(val_print_scalar_formatted): Likewise.
(val_print_array_elements): Likewise.
* valprint.h (val_print_array_elements): Update declaration.
(val_print_scalar_formatted): Likewise.
(generic_val_print): Likewise.
* value.h (val_print): Likewise.
2016-11-08 Yao Qi <yao.qi@linaro.org>
* mt-tdep.c (mt_registers_info): Call

View File

@ -168,9 +168,9 @@ extern void ada_print_type (struct type *, const char *, struct ui_file *, int,
extern void ada_print_typedef (struct type *type, struct symbol *new_symbol,
struct ui_file *stream);
extern void ada_val_print (struct type *, const gdb_byte *, int, CORE_ADDR,
extern void ada_val_print (struct type *, int, CORE_ADDR,
struct ui_file *, int,
const struct value *,
struct value *,
const struct value_print_options *);
extern void ada_value_print (struct value *, struct ui_file *,

View File

@ -35,7 +35,7 @@
static int print_field_values (struct type *, const gdb_byte *,
int,
struct ui_file *, int,
const struct value *,
struct value *,
const struct value_print_options *,
int, struct type *, int,
const struct language_defn *);
@ -122,7 +122,7 @@ val_print_packed_array_elements (struct type *type, const gdb_byte *valaddr,
int offset,
int bitoffset, struct ui_file *stream,
int recurse,
const struct value *val,
struct value *val,
const struct value_print_options *options)
{
unsigned int i;
@ -196,7 +196,7 @@ val_print_packed_array_elements (struct type *type, const gdb_byte *valaddr,
struct value_print_options opts = *options;
opts.deref_ref = 0;
val_print (elttype, value_contents_for_printing (v0),
val_print (elttype,
value_embedded_offset (v0), 0, stream,
recurse + 1, v0, &opts, current_language);
annotate_elt_rep (i - i0);
@ -227,7 +227,7 @@ val_print_packed_array_elements (struct type *type, const gdb_byte *valaddr,
maybe_print_array_index (index_type, j + low,
stream, options);
}
val_print (elttype, value_contents_for_printing (v0),
val_print (elttype,
value_embedded_offset (v0), 0, stream,
recurse + 1, v0, &opts, current_language);
annotate_elt ();
@ -534,7 +534,7 @@ static int
print_variant_part (struct type *type, int field_num,
const gdb_byte *valaddr, int offset,
struct ui_file *stream, int recurse,
const struct value *val,
struct value *val,
const struct value_print_options *options,
int comma_needed,
struct type *outer_type, int outer_offset,
@ -574,7 +574,7 @@ print_variant_part (struct type *type, int field_num,
static int
print_field_values (struct type *type, const gdb_byte *valaddr,
int offset, struct ui_file *stream, int recurse,
const struct value *val,
struct value *val,
const struct value_print_options *options,
int comma_needed,
struct type *outer_type, int outer_offset,
@ -634,8 +634,6 @@ print_field_values (struct type *type, const gdb_byte *valaddr,
if (TYPE_FIELD_PACKED (type, i))
{
struct value *v;
/* Bitfields require special handling, especially due to byte
order problems. */
if (HAVE_CPLUS_STRUCT (type) && TYPE_FIELD_IGNORE (type, i))
@ -644,6 +642,7 @@ print_field_values (struct type *type, const gdb_byte *valaddr,
}
else
{
struct value *v;
int bit_pos = TYPE_FIELD_BITPOS (type, i);
int bit_size = TYPE_FIELD_BITSIZE (type, i);
struct value_print_options opts;
@ -657,7 +656,6 @@ print_field_values (struct type *type, const gdb_byte *valaddr,
opts = *options;
opts.deref_ref = 0;
val_print (TYPE_FIELD_TYPE (type, i),
value_contents_for_printing (v),
value_embedded_offset (v), 0,
stream, recurse + 1, v,
&opts, language);
@ -668,7 +666,7 @@ print_field_values (struct type *type, const gdb_byte *valaddr,
struct value_print_options opts = *options;
opts.deref_ref = 0;
val_print (TYPE_FIELD_TYPE (type, i), valaddr,
val_print (TYPE_FIELD_TYPE (type, i),
(offset + TYPE_FIELD_BITPOS (type, i) / HOST_CHAR_BIT),
0, stream, recurse + 1, val, &opts, language);
}
@ -685,7 +683,7 @@ static void
ada_val_print_string (struct type *type, const gdb_byte *valaddr,
int offset, int offset_aligned, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options)
{
enum bfd_endian byte_order = gdbarch_byte_order (get_type_arch (type));
@ -733,7 +731,7 @@ static void
ada_val_print_gnat_array (struct type *type, const gdb_byte *valaddr,
int offset, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options,
const struct language_defn *language)
{
@ -755,7 +753,7 @@ ada_val_print_gnat_array (struct type *type, const gdb_byte *valaddr,
fprintf_filtered (stream, "0x0");
}
else
val_print (value_type (val), value_contents_for_printing (val),
val_print (value_type (val),
value_embedded_offset (val), value_address (val),
stream, recurse, val, options, language);
value_free_to_mark (mark);
@ -768,11 +766,11 @@ static void
ada_val_print_ptr (struct type *type, const gdb_byte *valaddr,
int offset, int offset_aligned, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options,
const struct language_defn *language)
{
val_print (type, valaddr, offset, address, stream, recurse,
val_print (type, offset, address, stream, recurse,
original_value, options, language_def (language_c));
if (ada_is_tag_type (type))
@ -795,7 +793,7 @@ static void
ada_val_print_num (struct type *type, const gdb_byte *valaddr,
int offset, int offset_aligned, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options,
const struct language_defn *language)
{
@ -821,12 +819,12 @@ ada_val_print_num (struct type *type, const gdb_byte *valaddr,
= value_from_contents_and_address (type, valaddr + offset, 0);
struct value *v = value_cast (target_type, v1);
val_print (target_type, value_contents_for_printing (v),
val_print (target_type,
value_embedded_offset (v), 0, stream,
recurse + 1, v, options, language);
}
else
val_print (TYPE_TARGET_TYPE (type), valaddr, offset,
val_print (TYPE_TARGET_TYPE (type), offset,
address, stream, recurse, original_value,
options, language);
return;
@ -841,7 +839,7 @@ ada_val_print_num (struct type *type, const gdb_byte *valaddr,
struct value_print_options opts = *options;
opts.format = format;
val_print_scalar_formatted (type, valaddr, offset_aligned,
val_print_scalar_formatted (type, offset_aligned,
original_value, &opts, 0, stream);
}
else if (ada_is_system_address_type (type))
@ -885,7 +883,7 @@ static void
ada_val_print_enum (struct type *type, const gdb_byte *valaddr,
int offset, int offset_aligned, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options,
const struct language_defn *language)
{
@ -895,7 +893,7 @@ ada_val_print_enum (struct type *type, const gdb_byte *valaddr,
if (options->format)
{
val_print_scalar_formatted (type, valaddr, offset_aligned,
val_print_scalar_formatted (type, offset_aligned,
original_value, options, 0, stream);
return;
}
@ -929,13 +927,13 @@ static void
ada_val_print_flt (struct type *type, const gdb_byte *valaddr,
int offset, int offset_aligned, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options,
const struct language_defn *language)
{
if (options->format)
{
val_print (type, valaddr, offset, address, stream, recurse,
val_print (type, offset, address, stream, recurse,
original_value, options, language_def (language_c));
return;
}
@ -950,7 +948,7 @@ static void
ada_val_print_struct_union
(struct type *type, const gdb_byte *valaddr, int offset,
int offset_aligned, CORE_ADDR address, struct ui_file *stream,
int recurse, const struct value *original_value,
int recurse, struct value *original_value,
const struct value_print_options *options,
const struct language_defn *language)
{
@ -981,7 +979,7 @@ static void
ada_val_print_array (struct type *type, const gdb_byte *valaddr,
int offset, int offset_aligned, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options)
{
/* For an array of characters, print with string syntax. */
@ -1001,7 +999,7 @@ ada_val_print_array (struct type *type, const gdb_byte *valaddr,
0, stream, recurse,
original_value, options);
else
val_print_array_elements (type, valaddr, offset_aligned, address,
val_print_array_elements (type, offset_aligned, address,
stream, recurse, original_value,
options, 0);
fprintf_filtered (stream, ")");
@ -1014,7 +1012,7 @@ static void
ada_val_print_ref (struct type *type, const gdb_byte *valaddr,
int offset, int offset_aligned, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options,
const struct language_defn *language)
{
@ -1064,7 +1062,6 @@ ada_val_print_ref (struct type *type, const gdb_byte *valaddr,
ada_ensure_varsize_limit (value_type (deref_val));
val_print (value_type (deref_val),
value_contents_for_printing (deref_val),
value_embedded_offset (deref_val),
value_address (deref_val), stream, recurse + 1,
deref_val, options, language);
@ -1074,14 +1071,15 @@ ada_val_print_ref (struct type *type, const gdb_byte *valaddr,
does not catch evaluation errors (leaving that to ada_val_print). */
static void
ada_val_print_1 (struct type *type, const gdb_byte *valaddr,
ada_val_print_1 (struct type *type,
int offset, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options,
const struct language_defn *language)
{
int offset_aligned;
const gdb_byte *valaddr = value_contents_for_printing (original_value);
type = ada_check_typedef (type);
@ -1103,7 +1101,7 @@ ada_val_print_1 (struct type *type, const gdb_byte *valaddr,
switch (TYPE_CODE (type))
{
default:
val_print (type, valaddr, offset, address, stream, recurse,
val_print (type, offset, address, stream, recurse,
original_value, options, language_def (language_c));
break;
@ -1157,17 +1155,17 @@ ada_val_print_1 (struct type *type, const gdb_byte *valaddr,
function; they are identical. */
void
ada_val_print (struct type *type, const gdb_byte *valaddr,
ada_val_print (struct type *type,
int embedded_offset, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *val,
struct value *val,
const struct value_print_options *options)
{
/* XXX: this catches QUIT/ctrl-c as well. Isn't that busted? */
TRY
{
ada_val_print_1 (type, valaddr, embedded_offset, address,
ada_val_print_1 (type, embedded_offset, address,
stream, recurse, val, options,
current_language);
}
@ -1222,7 +1220,7 @@ ada_value_print (struct value *val0, struct ui_file *stream,
opts = *options;
opts.deref_ref = 1;
val_print (type, value_contents_for_printing (val),
val_print (type,
value_embedded_offset (val), address,
stream, 0, val, &opts, current_language);
}

View File

@ -76,10 +76,10 @@ extern void c_print_typedef (struct type *,
struct symbol *,
struct ui_file *);
extern void c_val_print (struct type *, const gdb_byte *,
extern void c_val_print (struct type *,
int, CORE_ADDR,
struct ui_file *, int,
const struct value *,
struct value *,
const struct value_print_options *);
extern void c_value_print (struct value *, struct ui_file *,
@ -125,14 +125,14 @@ extern void cp_print_class_member (const gdb_byte *, struct type *,
extern void cp_print_value_fields (struct type *, struct type *,
const gdb_byte *, LONGEST, CORE_ADDR,
struct ui_file *, int,
const struct value *,
struct value *,
const struct value_print_options *,
struct type **, int);
extern void cp_print_value_fields_rtti (struct type *,
const gdb_byte *, LONGEST, CORE_ADDR,
struct ui_file *, int,
const struct value *,
struct value *,
const struct value_print_options *,
struct type **, int);

View File

@ -233,7 +233,7 @@ static void
c_val_print_array (struct type *type, const gdb_byte *valaddr,
int embedded_offset, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options)
{
struct type *unresolved_elttype = TYPE_TARGET_TYPE (type);
@ -325,7 +325,7 @@ c_val_print_array (struct type *type, const gdb_byte *valaddr,
{
i = 0;
}
val_print_array_elements (type, valaddr, embedded_offset,
val_print_array_elements (type, embedded_offset,
address, stream,
recurse, original_value, options, i);
fprintf_filtered (stream, "}");
@ -345,7 +345,7 @@ c_val_print_array (struct type *type, const gdb_byte *valaddr,
static void
c_val_print_ptr (struct type *type, const gdb_byte *valaddr,
int embedded_offset, struct ui_file *stream, int recurse,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options)
{
struct gdbarch *arch = get_type_arch (type);
@ -353,7 +353,7 @@ c_val_print_ptr (struct type *type, const gdb_byte *valaddr,
if (options->format && options->format != 's')
{
val_print_scalar_formatted (type, valaddr, embedded_offset,
val_print_scalar_formatted (type, embedded_offset,
original_value, options, 0, stream);
}
else if (options->vtblprint && cp_is_vtbl_ptr_type (type))
@ -386,7 +386,7 @@ static void
c_val_print_struct (struct type *type, const gdb_byte *valaddr,
int embedded_offset, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options)
{
if (options->vtblprint && cp_is_vtbl_ptr_type (type))
@ -418,7 +418,7 @@ static void
c_val_print_union (struct type *type, const gdb_byte *valaddr,
int embedded_offset, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options)
{
if (recurse && !options->unionprint)
@ -437,7 +437,7 @@ c_val_print_union (struct type *type, const gdb_byte *valaddr,
static void
c_val_print_int (struct type *type, struct type *unresolved_type,
const gdb_byte *valaddr, int embedded_offset,
struct ui_file *stream, const struct value *original_value,
struct ui_file *stream, struct value *original_value,
const struct value_print_options *options)
{
struct gdbarch *arch = get_type_arch (type);
@ -449,7 +449,7 @@ c_val_print_int (struct type *type, struct type *unresolved_type,
opts.format = (options->format ? options->format
: options->output_format);
val_print_scalar_formatted (type, valaddr, embedded_offset,
val_print_scalar_formatted (type, embedded_offset,
original_value, &opts, 0, stream);
}
else
@ -476,7 +476,7 @@ static void
c_val_print_memberptr (struct type *type, const gdb_byte *valaddr,
int embedded_offset, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options)
{
if (!options->format)
@ -485,7 +485,7 @@ c_val_print_memberptr (struct type *type, const gdb_byte *valaddr,
}
else
{
generic_val_print (type, valaddr, embedded_offset, address, stream,
generic_val_print (type, embedded_offset, address, stream,
recurse, original_value, options, &c_decorations);
}
}
@ -494,13 +494,14 @@ c_val_print_memberptr (struct type *type, const gdb_byte *valaddr,
function; they are identical. */
void
c_val_print (struct type *type, const gdb_byte *valaddr,
c_val_print (struct type *type,
int embedded_offset, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options)
{
struct type *unresolved_type = type;
const gdb_byte *valaddr = value_contents_for_printing (original_value);
type = check_typedef (type);
switch (TYPE_CODE (type))
@ -554,7 +555,7 @@ c_val_print (struct type *type, const gdb_byte *valaddr,
case TYPE_CODE_COMPLEX:
case TYPE_CODE_CHAR:
default:
generic_val_print (type, valaddr, embedded_offset, address,
generic_val_print (type, embedded_offset, address,
stream, recurse, original_value, options,
&c_decorations);
break;
@ -669,7 +670,7 @@ c_value_print (struct value *val, struct ui_file *stream,
/* Print out object: enclosing type is same as real_type if
full. */
val_print (value_enclosing_type (val),
value_contents_for_printing (val), 0,
0,
value_address (val), stream, 0,
val, &opts, current_language);
return;
@ -682,7 +683,7 @@ c_value_print (struct value *val, struct ui_file *stream,
fprintf_filtered (stream, "(%s ?) ",
TYPE_NAME (value_enclosing_type (val)));
val_print (value_enclosing_type (val),
value_contents_for_printing (val), 0,
0,
value_address (val), stream, 0,
val, &opts, current_language);
return;
@ -690,7 +691,7 @@ c_value_print (struct value *val, struct ui_file *stream,
/* Otherwise, we end up at the return outside this "if". */
}
val_print (val_type, value_contents_for_printing (val),
val_print (val_type,
value_embedded_offset (val),
value_address (val),
stream, 0,

View File

@ -82,7 +82,7 @@ static void cp_print_static_field (struct type *, struct value *,
static void cp_print_value (struct type *, struct type *,
const gdb_byte *, LONGEST,
CORE_ADDR, struct ui_file *,
int, const struct value *,
int, struct value *,
const struct value_print_options *,
struct type **);
@ -156,7 +156,7 @@ void
cp_print_value_fields (struct type *type, struct type *real_type,
const gdb_byte *valaddr, LONGEST offset,
CORE_ADDR address, struct ui_file *stream,
int recurse, const struct value *val,
int recurse, struct value *val,
const struct value_print_options *options,
struct type **dont_print_vb,
int dont_print_statmem)
@ -353,7 +353,6 @@ cp_print_value_fields (struct type *type, struct type *real_type,
opts.deref_ref = 0;
val_print (TYPE_FIELD_TYPE (type, i),
valaddr,
offset + TYPE_FIELD_BITPOS (type, i) / 8,
address,
stream, recurse + 1, val, &opts,
@ -420,7 +419,7 @@ cp_print_value_fields_rtti (struct type *type,
const gdb_byte *valaddr, LONGEST offset,
CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *val,
struct value *val,
const struct value_print_options *options,
struct type **dont_print_vb,
int dont_print_statmem)
@ -462,7 +461,7 @@ static void
cp_print_value (struct type *type, struct type *real_type,
const gdb_byte *valaddr, LONGEST offset,
CORE_ADDR address, struct ui_file *stream,
int recurse, const struct value *val,
int recurse, struct value *val,
const struct value_print_options *options,
struct type **dont_print_vb)
{
@ -489,7 +488,7 @@ cp_print_value (struct type *type, struct type *real_type,
struct type *baseclass = check_typedef (TYPE_BASECLASS (type, i));
const char *basename = TYPE_NAME (baseclass);
const gdb_byte *base_valaddr = NULL;
const struct value *base_val = NULL;
struct value *base_val = NULL;
if (BASETYPE_VIA_VIRTUAL (type, i))
{
@ -708,7 +707,7 @@ cp_print_static_field (struct type *type,
opts = *options;
opts.deref_ref = 0;
val_print (type, value_contents_for_printing (val),
val_print (type,
value_embedded_offset (val),
value_address (val),
stream, recurse, val,

View File

@ -80,10 +80,10 @@ extern struct block_symbol d_lookup_nested_symbol (struct type *, const char *,
/* Defined in d-valprint.c */
extern void d_val_print (struct type *type, const gdb_byte *valaddr,
extern void d_val_print (struct type *type,
int embedded_offset, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *val,
struct value *val,
const struct value_print_options *options);
#endif /* !defined (D_LANG_H) */

View File

@ -28,10 +28,10 @@
TYPE is a dynamic array, non-zero otherwise. */
static int
dynamic_array_type (struct type *type, const gdb_byte *valaddr,
dynamic_array_type (struct type *type,
LONGEST embedded_offset, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *val,
struct value *val,
const struct value_print_options *options)
{
if (TYPE_NFIELDS (type) == 2
@ -48,6 +48,7 @@ dynamic_array_type (struct type *type, const gdb_byte *valaddr,
struct type *ptr_type;
struct value *ival;
int length;
const gdb_byte *valaddr = value_contents_for_printing (val);
length = unpack_field_as_long (type, valaddr + embedded_offset, 0);
@ -63,7 +64,6 @@ dynamic_array_type (struct type *type, const gdb_byte *valaddr,
true_type = value_type (ival);
d_val_print (true_type,
value_contents_for_printing (ival),
value_embedded_offset (ival), addr,
stream, recurse + 1, ival, options);
return 0;
@ -73,9 +73,9 @@ dynamic_array_type (struct type *type, const gdb_byte *valaddr,
/* Implements the la_val_print routine for language D. */
void
d_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
d_val_print (struct type *type, int embedded_offset,
CORE_ADDR address, struct ui_file *stream, int recurse,
const struct value *val,
struct value *val,
const struct value_print_options *options)
{
int ret;
@ -84,12 +84,12 @@ d_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
switch (TYPE_CODE (type))
{
case TYPE_CODE_STRUCT:
ret = dynamic_array_type (type, valaddr, embedded_offset, address,
ret = dynamic_array_type (type, embedded_offset, address,
stream, recurse, val, options);
if (ret == 0)
break;
default:
c_val_print (type, valaddr, embedded_offset, address, stream,
c_val_print (type, embedded_offset, address, stream,
recurse, val, options);
}
}

View File

@ -30,9 +30,9 @@ extern void f_yyerror (char *); /* Defined in f-exp.y */
extern void f_print_type (struct type *, const char *, struct ui_file *, int,
int, const struct type_print_options *);
extern void f_val_print (struct type *, const gdb_byte *, int, CORE_ADDR,
extern void f_val_print (struct type *, int, CORE_ADDR,
struct ui_file *, int,
const struct value *,
struct value *,
const struct value_print_options *);
/* Language-specific data structures */

View File

@ -152,7 +152,6 @@ f77_print_array_1 (int nss, int ndimensions, struct type *type,
struct value *elt = value_subscript ((struct value *)val, i);
val_print (value_type (elt),
value_contents_for_printing (elt),
value_embedded_offset (elt),
value_address (elt), stream, recurse,
elt, options, current_language);
@ -211,9 +210,9 @@ static const struct generic_val_print_decorations f_decorations =
function; they are identical. */
void
f_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
f_val_print (struct type *type, int embedded_offset,
CORE_ADDR address, struct ui_file *stream, int recurse,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options)
{
struct gdbarch *gdbarch = get_type_arch (type);
@ -222,6 +221,7 @@ f_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
struct type *elttype;
CORE_ADDR addr;
int index;
const gdb_byte *valaddr =value_contents_for_printing (original_value);
type = check_typedef (type);
switch (TYPE_CODE (type))
@ -256,7 +256,7 @@ f_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
case TYPE_CODE_PTR:
if (options->format && options->format != 's')
{
val_print_scalar_formatted (type, valaddr, embedded_offset,
val_print_scalar_formatted (type, embedded_offset,
original_value, options, 0, stream);
break;
}
@ -306,7 +306,7 @@ f_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
opts.format = (options->format ? options->format
: options->output_format);
val_print_scalar_formatted (type, valaddr, embedded_offset,
val_print_scalar_formatted (type, embedded_offset,
original_value, &opts, 0, stream);
}
else
@ -355,7 +355,6 @@ f_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
}
val_print (value_type (field),
value_contents_for_printing (field),
value_embedded_offset (field),
value_address (field), stream, recurse + 1,
field, options, current_language);
@ -378,7 +377,7 @@ f_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
case TYPE_CODE_BOOL:
case TYPE_CODE_CHAR:
default:
generic_val_print (type, valaddr, embedded_offset, address,
generic_val_print (type, embedded_offset, address,
stream, recurse, original_value, options,
&f_decorations);
break;

View File

@ -84,10 +84,10 @@ extern void go_print_type (struct type *type, const char *varstring,
/* Defined in go-valprint.c. */
extern void go_val_print (struct type *type, const gdb_byte *valaddr,
extern void go_val_print (struct type *type,
int embedded_offset, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *val,
struct value *val,
const struct value_print_options *options);
#endif /* !defined (GO_LANG_H) */

View File

@ -36,10 +36,10 @@
gdb_assert (go_classify_struct_type (type) == GO_TYPE_STRING). */
static void
print_go_string (struct type *type, const gdb_byte *valaddr,
print_go_string (struct type *type,
LONGEST embedded_offset, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *val,
struct value *val,
const struct value_print_options *options)
{
struct gdbarch *gdbarch = get_type_arch (type);
@ -51,8 +51,8 @@ print_go_string (struct type *type, const gdb_byte *valaddr,
unpack_value_field_as_pointer. Do this until we can get
unpack_value_field_as_pointer. */
LONGEST addr;
const gdb_byte *valaddr = value_contents_for_printing (val);
gdb_assert (valaddr == value_contents_for_printing_const (val));
if (! unpack_value_field_as_long (type, valaddr, embedded_offset, 0,
val, &addr))
@ -86,9 +86,9 @@ print_go_string (struct type *type, const gdb_byte *valaddr,
/* Implements the la_val_print routine for language Go. */
void
go_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
go_val_print (struct type *type, int embedded_offset,
CORE_ADDR address, struct ui_file *stream, int recurse,
const struct value *val,
struct value *val,
const struct value_print_options *options)
{
type = check_typedef (type);
@ -104,7 +104,7 @@ go_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
case GO_TYPE_STRING:
if (! options->raw)
{
print_go_string (type, valaddr, embedded_offset, address,
print_go_string (type, embedded_offset, address,
stream, recurse, val, options);
return;
}
@ -116,7 +116,7 @@ go_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
/* Fall through. */
default:
c_val_print (type, valaddr, embedded_offset, address, stream,
c_val_print (type, embedded_offset, address, stream,
recurse, val, options);
break;
}

View File

@ -2315,7 +2315,6 @@ default_print_one_register_info (struct ui_file *file,
opts.deref_ref = 1;
val_print (regtype,
value_contents_for_printing (val),
value_embedded_offset (val), 0,
file, 0, val, &opts, current_language);
@ -2334,7 +2333,6 @@ default_print_one_register_info (struct ui_file *file,
get_formatted_print_options (&opts, 'x');
opts.deref_ref = 1;
val_print (regtype,
value_contents_for_printing (val),
value_embedded_offset (val), 0,
file, 0, val, &opts, current_language);
/* If not a vector register, print it also according to its
@ -2345,7 +2343,6 @@ default_print_one_register_info (struct ui_file *file,
opts.deref_ref = 1;
fprintf_filtered (file, "\t");
val_print (regtype,
value_contents_for_printing (val),
value_embedded_offset (val), 0,
file, 0, val, &opts, current_language);
}

View File

@ -780,10 +780,10 @@ unk_lang_print_type (struct type *type, const char *varstring,
}
static void
unk_lang_val_print (struct type *type, const gdb_byte *valaddr,
unk_lang_val_print (struct type *type,
int embedded_offset, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *val,
struct value *val,
const struct value_print_options *options)
{
error (_("internal error - unimplemented "

View File

@ -219,9 +219,6 @@ struct language_defn
TYPE is the type of the sub-object to be printed.
CONTENTS holds the bits of the value. This holds the entire
enclosing object.
EMBEDDED_OFFSET is the offset into the outermost object of the
sub-object represented by TYPE. This is the object which this
call should print. Note that the enclosing type is not
@ -237,10 +234,9 @@ struct language_defn
printing. */
void (*la_val_print) (struct type *type,
const gdb_byte *contents,
int embedded_offset, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *val,
struct value *val,
const struct value_print_options *options);
/* Print a top-level value using syntax appropriate for this language. */
@ -515,9 +511,6 @@ extern enum language set_language (enum language);
#define LA_PRINT_TYPEDEF(type,new_symbol,stream) \
(current_language->la_print_typedef(type,new_symbol,stream))
#define LA_VAL_PRINT(type,valaddr,offset,addr,stream,val,recurse,options) \
(current_language->la_val_print(type,valaddr,offset,addr,stream, \
val,recurse,options))
#define LA_VALUE_PRINT(val,stream,options) \
(current_language->la_value_print(val,stream,options))

View File

@ -34,9 +34,9 @@ extern void m2_print_typedef (struct type *, struct symbol *,
extern int m2_is_long_set (struct type *type);
extern int m2_is_unbounded_array (struct type *type);
extern void m2_val_print (struct type *, const gdb_byte *, int, CORE_ADDR,
extern void m2_val_print (struct type *, int, CORE_ADDR,
struct ui_file *, int,
const struct value *,
struct value *,
const struct value_print_options *);
extern int get_long_set_bounds (struct type *type, LONGEST *low,

View File

@ -37,7 +37,7 @@ static void
m2_print_array_contents (struct type *type, const gdb_byte *valaddr,
int embedded_offset, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *val,
struct value *val,
const struct value_print_options *options,
int len);
@ -262,7 +262,7 @@ static void
m2_print_array_contents (struct type *type, const gdb_byte *valaddr,
int embedded_offset, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *val,
struct value *val,
const struct value_print_options *options,
int len)
{
@ -282,7 +282,7 @@ m2_print_array_contents (struct type *type, const gdb_byte *valaddr,
else
{
fprintf_filtered (stream, "{");
val_print_array_elements (type, valaddr, embedded_offset,
val_print_array_elements (type, embedded_offset,
address, stream, recurse, val,
options, 0);
fprintf_filtered (stream, "}");
@ -308,15 +308,16 @@ static const struct generic_val_print_decorations m2_decorations =
function; they are identical. */
void
m2_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
m2_val_print (struct type *type, int embedded_offset,
CORE_ADDR address, struct ui_file *stream, int recurse,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options)
{
struct gdbarch *gdbarch = get_type_arch (type);
unsigned len;
struct type *elttype;
CORE_ADDR addr;
const gdb_byte *valaddr = value_contents_for_printing (original_value);
type = check_typedef (type);
switch (TYPE_CODE (type))
@ -356,7 +357,7 @@ m2_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
else
{
fprintf_filtered (stream, "{");
val_print_array_elements (type, valaddr, embedded_offset,
val_print_array_elements (type, embedded_offset,
address, stream,
recurse, original_value,
options, 0);
@ -373,7 +374,7 @@ m2_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
print_variable_at_address (type, valaddr + embedded_offset,
stream, recurse, options);
else if (options->format && options->format != 's')
val_print_scalar_formatted (type, valaddr, embedded_offset,
val_print_scalar_formatted (type, embedded_offset,
original_value, options, 0, stream);
else
{
@ -469,7 +470,7 @@ m2_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
case TYPE_CODE_RANGE:
if (TYPE_LENGTH (type) == TYPE_LENGTH (TYPE_TARGET_TYPE (type)))
{
m2_val_print (TYPE_TARGET_TYPE (type), valaddr, embedded_offset,
m2_val_print (TYPE_TARGET_TYPE (type), embedded_offset,
address, stream, recurse, original_value, options);
break;
}
@ -494,7 +495,7 @@ m2_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
case TYPE_CODE_BOOL:
case TYPE_CODE_CHAR:
default:
generic_val_print (type, valaddr, embedded_offset, address,
generic_val_print (type, embedded_offset, address,
stream, recurse, original_value, options,
&m2_decorations);
break;

View File

@ -1290,7 +1290,6 @@ output_register (struct frame_info *frame, int regnum, int format,
get_formatted_print_options (&opts, format);
opts.deref_ref = 1;
val_print (value_type (val),
value_contents_for_printing (val),
value_embedded_offset (val), 0,
stb, 0, val, &opts, current_language);
ui_out_field_stream (uiout, "value", stb);

View File

@ -6356,7 +6356,6 @@ mips_print_register (struct ui_file *file, struct frame_info *frame,
get_formatted_print_options (&opts, 'x');
val_print_scalar_formatted (value_type (val),
value_contents_for_printing (val),
value_embedded_offset (val),
val,
&opts, 0, file);

View File

@ -726,7 +726,6 @@ mt_registers_info (struct gdbarch *gdbarch,
get_no_prettyformat_print_options (&opts);
opts.deref_ref = 1;
val_print (register_type (gdbarch, regnum),
value_contents_for_printing (val),
0, 0, file, 0, val,
&opts, current_language);
fputs_filtered ("\n", file);

View File

@ -36,9 +36,9 @@ extern void pascal_print_type (struct type *, const char *, struct ui_file *,
extern void pascal_print_typedef (struct type *, struct symbol *,
struct ui_file *);
extern void pascal_val_print (struct type *, const gdb_byte *, int,
extern void pascal_val_print (struct type *, int,
CORE_ADDR, struct ui_file *, int,
const struct value *,
struct value *,
const struct value_print_options *);
extern void pascal_value_print (struct value *, struct ui_file *,
@ -75,7 +75,7 @@ extern void pascal_object_print_value_fields (struct type *, const gdb_byte *,
LONGEST,
CORE_ADDR, struct ui_file *,
int,
const struct value *,
struct value *,
const struct value_print_options *,
struct type **, int);

View File

@ -58,10 +58,10 @@ static const struct generic_val_print_decorations p_decorations =
function; they are identical. */
void
pascal_val_print (struct type *type, const gdb_byte *valaddr,
pascal_val_print (struct type *type,
int embedded_offset, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options)
{
struct gdbarch *gdbarch = get_type_arch (type);
@ -75,6 +75,7 @@ pascal_val_print (struct type *type, const gdb_byte *valaddr,
struct type *char_type;
CORE_ADDR addr;
int want_space = 0;
const gdb_byte *valaddr = value_contents_for_printing (original_value);
type = check_typedef (type);
switch (TYPE_CODE (type))
@ -132,7 +133,7 @@ pascal_val_print (struct type *type, const gdb_byte *valaddr,
{
i = 0;
}
val_print_array_elements (type, valaddr, embedded_offset,
val_print_array_elements (type, embedded_offset,
address, stream, recurse,
original_value, options, i);
fprintf_filtered (stream, "}");
@ -146,7 +147,7 @@ pascal_val_print (struct type *type, const gdb_byte *valaddr,
case TYPE_CODE_PTR:
if (options->format && options->format != 's')
{
val_print_scalar_formatted (type, valaddr, embedded_offset,
val_print_scalar_formatted (type, embedded_offset,
original_value, options, 0, stream);
break;
}
@ -287,7 +288,7 @@ pascal_val_print (struct type *type, const gdb_byte *valaddr,
case TYPE_CODE_UNDEF:
case TYPE_CODE_BOOL:
case TYPE_CODE_CHAR:
generic_val_print (type, valaddr, embedded_offset, address,
generic_val_print (type, embedded_offset, address,
stream, recurse, original_value, options,
&p_decorations);
break;
@ -471,7 +472,7 @@ static void pascal_object_print_static_field (struct value *,
static void pascal_object_print_value (struct type *, const gdb_byte *,
LONGEST,
CORE_ADDR, struct ui_file *, int,
const struct value *,
struct value *,
const struct value_print_options *,
struct type **);
@ -531,7 +532,7 @@ pascal_object_print_value_fields (struct type *type, const gdb_byte *valaddr,
LONGEST offset,
CORE_ADDR address, struct ui_file *stream,
int recurse,
const struct value *val,
struct value *val,
const struct value_print_options *options,
struct type **dont_print_vb,
int dont_print_statmem)
@ -670,7 +671,7 @@ pascal_object_print_value_fields (struct type *type, const gdb_byte *valaddr,
address + TYPE_FIELD_BITPOS (type, i) / 8, 0,
stream, format, 0, recurse + 1, pretty); */
val_print (TYPE_FIELD_TYPE (type, i),
valaddr, offset + TYPE_FIELD_BITPOS (type, i) / 8,
offset + TYPE_FIELD_BITPOS (type, i) / 8,
address, stream, recurse + 1, val, &opts,
current_language);
}
@ -703,7 +704,7 @@ pascal_object_print_value (struct type *type, const gdb_byte *valaddr,
LONGEST offset,
CORE_ADDR address, struct ui_file *stream,
int recurse,
const struct value *val,
struct value *val,
const struct value_print_options *options,
struct type **dont_print_vb)
{

View File

@ -322,7 +322,6 @@ print_formatted (struct value *val, int size,
/* User specified format, so don't look to the type to tell us
what to do. */
val_print_scalar_formatted (type,
value_contents_for_printing (val),
value_embedded_offset (val),
val,
options, size, stream);

View File

@ -120,7 +120,7 @@ rust_union_is_untagged (struct type *type)
static struct disr_info
rust_get_disr_info (struct type *type, const gdb_byte *valaddr,
int embedded_offset, CORE_ADDR address,
const struct value *val)
struct value *val)
{
int i;
struct disr_info ret;
@ -235,7 +235,7 @@ rust_get_disr_info (struct type *type, const gdb_byte *valaddr,
cleanup = make_cleanup_ui_file_delete (temp_file);
/* The first value of the first field (or any field)
is the discriminant value. */
c_val_print (TYPE_FIELD_TYPE (disr_type, 0), valaddr,
c_val_print (TYPE_FIELD_TYPE (disr_type, 0),
(embedded_offset + TYPE_FIELD_BITPOS (type, 0) / 8
+ TYPE_FIELD_BITPOS (disr_type, 0) / 8),
address, temp_file,
@ -479,9 +479,9 @@ rust_printstr (struct ui_file *stream, struct type *type,
/* rust_print_type branch for structs and untagged unions. */
static void
val_print_struct (struct type *type, const gdb_byte *valaddr,
int embedded_offset, CORE_ADDR address, struct ui_file *stream,
int recurse, const struct value *val,
val_print_struct (struct type *type, int embedded_offset,
CORE_ADDR address, struct ui_file *stream,
int recurse, struct value *val,
const struct value_print_options *options)
{
int i;
@ -536,7 +536,6 @@ val_print_struct (struct type *type, const gdb_byte *valaddr,
}
val_print (TYPE_FIELD_TYPE (type, i),
valaddr,
embedded_offset + TYPE_FIELD_BITPOS (type, i) / 8,
address,
stream, recurse + 1, val, &opts,
@ -572,11 +571,13 @@ static const struct generic_val_print_decorations rust_decorations =
/* la_val_print implementation for Rust. */
static void
rust_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
rust_val_print (struct type *type, int embedded_offset,
CORE_ADDR address, struct ui_file *stream, int recurse,
const struct value *val,
struct value *val,
const struct value_print_options *options)
{
const gdb_byte *valaddr = value_contents_for_printing (val);
type = check_typedef (type);
switch (TYPE_CODE (type))
{
@ -613,7 +614,7 @@ rust_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
case TYPE_CODE_METHODPTR:
case TYPE_CODE_MEMBERPTR:
c_val_print (type, valaddr, embedded_offset, address, stream,
c_val_print (type, embedded_offset, address, stream,
recurse, val, options);
break;
@ -672,7 +673,7 @@ rust_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
fields. */
if (rust_union_is_untagged (type))
{
val_print_struct (type, valaddr, embedded_offset, address, stream,
val_print_struct (type, embedded_offset, address, stream,
recurse, val, options);
break;
}
@ -728,7 +729,6 @@ rust_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
TYPE_FIELD_NAME (variant_type, j));
val_print (TYPE_FIELD_TYPE (variant_type, j),
valaddr,
(embedded_offset
+ TYPE_FIELD_BITPOS (type, disr.field_no) / 8
+ TYPE_FIELD_BITPOS (variant_type, j) / 8),
@ -745,14 +745,14 @@ rust_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
break;
case TYPE_CODE_STRUCT:
val_print_struct (type, valaddr, embedded_offset, address, stream,
recurse, val, options);
val_print_struct (type, embedded_offset, address, stream,
recurse, val, options);
break;
default:
generic_print:
/* Nothing special yet. */
generic_val_print (type, valaddr, embedded_offset, address, stream,
generic_val_print (type, embedded_offset, address, stream,
recurse, val, options, &rust_decorations);
}
}

View File

@ -2048,13 +2048,13 @@ sh64_do_register (struct gdbarch *gdbarch, struct ui_file *file,
get_formatted_print_options (&opts, 'x');
opts.deref_ref = 1;
val_print (register_type (gdbarch, regnum),
value_contents_for_printing (val), 0, 0,
0, 0,
file, 0, val, &opts, current_language);
fprintf_filtered (file, "\t");
get_formatted_print_options (&opts, 0);
opts.deref_ref = 1;
val_print (register_type (gdbarch, regnum),
value_contents_for_printing (val), 0, 0,
0, 0,
file, 0, val, &opts, current_language);
fprintf_filtered (file, "\n");
}

View File

@ -421,10 +421,10 @@ print_unpacked_pointer (struct type *type, struct type *elttype,
/* generic_val_print helper for TYPE_CODE_ARRAY. */
static void
generic_val_print_array (struct type *type, const gdb_byte *valaddr,
generic_val_print_array (struct type *type,
int embedded_offset, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options,
const struct
generic_val_print_decorations *decorations)
@ -445,7 +445,7 @@ generic_val_print_array (struct type *type, const gdb_byte *valaddr,
}
fputs_filtered (decorations->array_start, stream);
val_print_array_elements (type, valaddr, embedded_offset,
val_print_array_elements (type, embedded_offset,
address, stream,
recurse, original_value, options, 0);
fputs_filtered (decorations->array_end, stream);
@ -462,9 +462,9 @@ generic_val_print_array (struct type *type, const gdb_byte *valaddr,
/* generic_val_print helper for TYPE_CODE_PTR. */
static void
generic_val_print_ptr (struct type *type, const gdb_byte *valaddr,
generic_val_print_ptr (struct type *type,
int embedded_offset, struct ui_file *stream,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options)
{
struct gdbarch *gdbarch = get_type_arch (type);
@ -472,13 +472,14 @@ generic_val_print_ptr (struct type *type, const gdb_byte *valaddr,
if (options->format && options->format != 's')
{
val_print_scalar_formatted (type, valaddr, embedded_offset,
val_print_scalar_formatted (type, embedded_offset,
original_value, options, 0, stream);
}
else
{
struct type *unresolved_elttype = TYPE_TARGET_TYPE(type);
struct type *elttype = check_typedef (unresolved_elttype);
const gdb_byte *valaddr = value_contents_for_printing (original_value);
CORE_ADDR addr = unpack_pointer (type,
valaddr + embedded_offset * unit_size);
@ -490,12 +491,12 @@ generic_val_print_ptr (struct type *type, const gdb_byte *valaddr,
/* generic_val_print helper for TYPE_CODE_MEMBERPTR. */
static void
generic_val_print_memberptr (struct type *type, const gdb_byte *valaddr,
generic_val_print_memberptr (struct type *type,
int embedded_offset, struct ui_file *stream,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options)
{
val_print_scalar_formatted (type, valaddr, embedded_offset,
val_print_scalar_formatted (type, embedded_offset,
original_value, options, 0, stream);
}
@ -538,9 +539,9 @@ get_value_addr_contents (struct value *deref_val)
/* generic_val_print helper for TYPE_CODE_REF. */
static void
generic_val_print_ref (struct type *type, const gdb_byte *valaddr,
generic_val_print_ref (struct type *type,
int embedded_offset, struct ui_file *stream, int recurse,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options)
{
struct type *elttype = check_typedef (TYPE_TARGET_TYPE (type));
@ -552,6 +553,7 @@ generic_val_print_ref (struct type *type, const gdb_byte *valaddr,
const int must_coerce_ref = ((options->addressprint && value_is_synthetic)
|| options->deref_ref);
const int type_is_defined = TYPE_CODE (elttype) != TYPE_CODE_UNDEF;
const gdb_byte *valaddr = value_contents_for_printing (original_value);
if (must_coerce_ref && type_is_defined)
{
@ -663,9 +665,9 @@ generic_val_print_enum_1 (struct type *type, LONGEST val,
/* generic_val_print helper for TYPE_CODE_ENUM. */
static void
generic_val_print_enum (struct type *type, const gdb_byte *valaddr,
generic_val_print_enum (struct type *type,
int embedded_offset, struct ui_file *stream,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options)
{
LONGEST val;
@ -674,45 +676,53 @@ generic_val_print_enum (struct type *type, const gdb_byte *valaddr,
if (options->format)
{
val_print_scalar_formatted (type, valaddr, embedded_offset,
val_print_scalar_formatted (type, embedded_offset,
original_value, options, 0, stream);
return;
}
val = unpack_long (type, valaddr + embedded_offset * unit_size);
else
{
const gdb_byte *valaddr = value_contents_for_printing (original_value);
generic_val_print_enum_1 (type, val, stream);
val = unpack_long (type, valaddr + embedded_offset * unit_size);
generic_val_print_enum_1 (type, val, stream);
}
}
/* generic_val_print helper for TYPE_CODE_FLAGS. */
static void
generic_val_print_flags (struct type *type, const gdb_byte *valaddr,
generic_val_print_flags (struct type *type,
int embedded_offset, struct ui_file *stream,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options)
{
if (options->format)
val_print_scalar_formatted (type, valaddr, embedded_offset, original_value,
val_print_scalar_formatted (type, embedded_offset, original_value,
options, 0, stream);
else
val_print_type_code_flags (type, valaddr + embedded_offset, stream);
{
const gdb_byte *valaddr = value_contents_for_printing (original_value);
val_print_type_code_flags (type, valaddr + embedded_offset, stream);
}
}
/* generic_val_print helper for TYPE_CODE_FUNC and TYPE_CODE_METHOD. */
static void
generic_val_print_func (struct type *type, const gdb_byte *valaddr,
generic_val_print_func (struct type *type,
int embedded_offset, CORE_ADDR address,
struct ui_file *stream,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options)
{
struct gdbarch *gdbarch = get_type_arch (type);
if (options->format)
{
val_print_scalar_formatted (type, valaddr, embedded_offset,
val_print_scalar_formatted (type, embedded_offset,
original_value, options, 0, stream);
}
else
@ -731,9 +741,9 @@ generic_val_print_func (struct type *type, const gdb_byte *valaddr,
/* generic_val_print helper for TYPE_CODE_BOOL. */
static void
generic_val_print_bool (struct type *type, const gdb_byte *valaddr,
generic_val_print_bool (struct type *type,
int embedded_offset, struct ui_file *stream,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options,
const struct generic_val_print_decorations *decorations)
{
@ -746,11 +756,13 @@ generic_val_print_bool (struct type *type, const gdb_byte *valaddr,
struct value_print_options opts = *options;
opts.format = (options->format ? options->format
: options->output_format);
val_print_scalar_formatted (type, valaddr, embedded_offset,
val_print_scalar_formatted (type, embedded_offset,
original_value, &opts, 0, stream);
}
else
{
const gdb_byte *valaddr = value_contents_for_printing (original_value);
val = unpack_long (type, valaddr + embedded_offset * unit_size);
if (val == 0)
fputs_filtered (decorations->false_name, stream);
@ -764,9 +776,9 @@ generic_val_print_bool (struct type *type, const gdb_byte *valaddr,
/* generic_val_print helper for TYPE_CODE_INT. */
static void
generic_val_print_int (struct type *type, const gdb_byte *valaddr,
generic_val_print_int (struct type *type,
int embedded_offset, struct ui_file *stream,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options)
{
struct gdbarch *gdbarch = get_type_arch (type);
@ -778,21 +790,25 @@ generic_val_print_int (struct type *type, const gdb_byte *valaddr,
opts.format = (options->format ? options->format
: options->output_format);
val_print_scalar_formatted (type, valaddr, embedded_offset,
val_print_scalar_formatted (type, embedded_offset,
original_value, &opts, 0, stream);
}
else
val_print_type_code_int (type, valaddr + embedded_offset * unit_size,
stream);
{
const gdb_byte *valaddr = value_contents_for_printing (original_value);
val_print_type_code_int (type, valaddr + embedded_offset * unit_size,
stream);
}
}
/* generic_val_print helper for TYPE_CODE_CHAR. */
static void
generic_val_print_char (struct type *type, struct type *unresolved_type,
const gdb_byte *valaddr, int embedded_offset,
int embedded_offset,
struct ui_file *stream,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options)
{
LONGEST val;
@ -805,11 +821,13 @@ generic_val_print_char (struct type *type, struct type *unresolved_type,
opts.format = (options->format ? options->format
: options->output_format);
val_print_scalar_formatted (type, valaddr, embedded_offset,
val_print_scalar_formatted (type, embedded_offset,
original_value, &opts, 0, stream);
}
else
{
const gdb_byte *valaddr = value_contents_for_printing (original_value);
val = unpack_long (type, valaddr + embedded_offset * unit_size);
if (TYPE_UNSIGNED (type))
fprintf_filtered (stream, "%u", (unsigned int) val);
@ -823,9 +841,9 @@ generic_val_print_char (struct type *type, struct type *unresolved_type,
/* generic_val_print helper for TYPE_CODE_FLT. */
static void
generic_val_print_float (struct type *type, const gdb_byte *valaddr,
generic_val_print_float (struct type *type,
int embedded_offset, struct ui_file *stream,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options)
{
struct gdbarch *gdbarch = get_type_arch (type);
@ -833,11 +851,13 @@ generic_val_print_float (struct type *type, const gdb_byte *valaddr,
if (options->format)
{
val_print_scalar_formatted (type, valaddr, embedded_offset,
val_print_scalar_formatted (type, embedded_offset,
original_value, options, 0, stream);
}
else
{
const gdb_byte *valaddr = value_contents_for_printing (original_value);
print_floating (valaddr + embedded_offset * unit_size, type, stream);
}
}
@ -845,38 +865,43 @@ generic_val_print_float (struct type *type, const gdb_byte *valaddr,
/* generic_val_print helper for TYPE_CODE_DECFLOAT. */
static void
generic_val_print_decfloat (struct type *type, const gdb_byte *valaddr,
generic_val_print_decfloat (struct type *type,
int embedded_offset, struct ui_file *stream,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options)
{
struct gdbarch *gdbarch = get_type_arch (type);
int unit_size = gdbarch_addressable_memory_unit_size (gdbarch);
if (options->format)
val_print_scalar_formatted (type, valaddr, embedded_offset, original_value,
val_print_scalar_formatted (type, embedded_offset, original_value,
options, 0, stream);
else
print_decimal_floating (valaddr + embedded_offset * unit_size, type,
stream);
{
const gdb_byte *valaddr = value_contents_for_printing (original_value);
print_decimal_floating (valaddr + embedded_offset * unit_size, type,
stream);
}
}
/* generic_val_print helper for TYPE_CODE_COMPLEX. */
static void
generic_val_print_complex (struct type *type, const gdb_byte *valaddr,
generic_val_print_complex (struct type *type,
int embedded_offset, struct ui_file *stream,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options,
const struct generic_val_print_decorations
*decorations)
{
struct gdbarch *gdbarch = get_type_arch (type);
int unit_size = gdbarch_addressable_memory_unit_size (gdbarch);
const gdb_byte *valaddr = value_contents_for_printing (original_value);
fprintf_filtered (stream, "%s", decorations->complex_prefix);
if (options->format)
val_print_scalar_formatted (TYPE_TARGET_TYPE (type), valaddr,
val_print_scalar_formatted (TYPE_TARGET_TYPE (type),
embedded_offset, original_value, options, 0,
stream);
else
@ -884,7 +909,7 @@ generic_val_print_complex (struct type *type, const gdb_byte *valaddr,
TYPE_TARGET_TYPE (type), stream);
fprintf_filtered (stream, "%s", decorations->complex_infix);
if (options->format)
val_print_scalar_formatted (TYPE_TARGET_TYPE (type), valaddr,
val_print_scalar_formatted (TYPE_TARGET_TYPE (type),
embedded_offset
+ type_length_units (TYPE_TARGET_TYPE (type)),
original_value, options, 0, stream);
@ -907,10 +932,10 @@ generic_val_print_complex (struct type *type, const gdb_byte *valaddr,
output in some small, language-specific ways. */
void
generic_val_print (struct type *type, const gdb_byte *valaddr,
generic_val_print (struct type *type,
int embedded_offset, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options,
const struct generic_val_print_decorations *decorations)
{
@ -920,43 +945,43 @@ generic_val_print (struct type *type, const gdb_byte *valaddr,
switch (TYPE_CODE (type))
{
case TYPE_CODE_ARRAY:
generic_val_print_array (type, valaddr, embedded_offset, address, stream,
generic_val_print_array (type, embedded_offset, address, stream,
recurse, original_value, options, decorations);
break;
case TYPE_CODE_MEMBERPTR:
generic_val_print_memberptr (type, valaddr, embedded_offset, stream,
generic_val_print_memberptr (type, embedded_offset, stream,
original_value, options);
break;
case TYPE_CODE_PTR:
generic_val_print_ptr (type, valaddr, embedded_offset, stream,
generic_val_print_ptr (type, embedded_offset, stream,
original_value, options);
break;
case TYPE_CODE_REF:
generic_val_print_ref (type, valaddr, embedded_offset, stream, recurse,
generic_val_print_ref (type, embedded_offset, stream, recurse,
original_value, options);
break;
case TYPE_CODE_ENUM:
generic_val_print_enum (type, valaddr, embedded_offset, stream,
generic_val_print_enum (type, embedded_offset, stream,
original_value, options);
break;
case TYPE_CODE_FLAGS:
generic_val_print_flags (type, valaddr, embedded_offset, stream,
generic_val_print_flags (type, embedded_offset, stream,
original_value, options);
break;
case TYPE_CODE_FUNC:
case TYPE_CODE_METHOD:
generic_val_print_func (type, valaddr, embedded_offset, address, stream,
generic_val_print_func (type, embedded_offset, address, stream,
original_value, options);
break;
case TYPE_CODE_BOOL:
generic_val_print_bool (type, valaddr, embedded_offset, stream,
generic_val_print_bool (type, embedded_offset, stream,
original_value, options, decorations);
break;
@ -972,22 +997,22 @@ generic_val_print (struct type *type, const gdb_byte *valaddr,
/* FALLTHROUGH */
case TYPE_CODE_INT:
generic_val_print_int (type, valaddr, embedded_offset, stream,
generic_val_print_int (type, embedded_offset, stream,
original_value, options);
break;
case TYPE_CODE_CHAR:
generic_val_print_char (type, unresolved_type, valaddr, embedded_offset,
generic_val_print_char (type, unresolved_type, embedded_offset,
stream, original_value, options);
break;
case TYPE_CODE_FLT:
generic_val_print_float (type, valaddr, embedded_offset, stream,
generic_val_print_float (type, embedded_offset, stream,
original_value, options);
break;
case TYPE_CODE_DECFLOAT:
generic_val_print_decfloat (type, valaddr, embedded_offset, stream,
generic_val_print_decfloat (type, embedded_offset, stream,
original_value, options);
break;
@ -1007,7 +1032,7 @@ generic_val_print (struct type *type, const gdb_byte *valaddr,
break;
case TYPE_CODE_COMPLEX:
generic_val_print_complex (type, valaddr, embedded_offset, stream,
generic_val_print_complex (type, embedded_offset, stream,
original_value, options, decorations);
break;
@ -1022,15 +1047,14 @@ generic_val_print (struct type *type, const gdb_byte *valaddr,
}
/* Print using the given LANGUAGE the data of type TYPE located at
VALADDR + EMBEDDED_OFFSET (within GDB), which came from the
inferior at address ADDRESS + EMBEDDED_OFFSET, onto stdio stream
STREAM according to OPTIONS. VAL is the whole object that came
from ADDRESS. VALADDR must point to the head of VAL's contents
buffer.
VAL's contents buffer + EMBEDDED_OFFSET (within GDB), which came
from the inferior at address ADDRESS + EMBEDDED_OFFSET, onto
stdio stream STREAM according to OPTIONS. VAL is the whole object
that came from ADDRESS.
The language printers will pass down an adjusted EMBEDDED_OFFSET to
further helper subroutines as subfields of TYPE are printed. In
such cases, VALADDR is passed down unadjusted, as well as VAL, so
such cases, VAL is passed down unadjusted, so
that VAL can be queried for metadata about the contents data being
printed, using EMBEDDED_OFFSET as an offset into VAL's contents
buffer. For example: "has this field been optimized out", or "I'm
@ -1042,9 +1066,9 @@ generic_val_print (struct type *type, const gdb_byte *valaddr,
RECURSE. */
void
val_print (struct type *type, const gdb_byte *valaddr, LONGEST embedded_offset,
val_print (struct type *type, LONGEST embedded_offset,
CORE_ADDR address, struct ui_file *stream, int recurse,
const struct value *val,
struct value *val,
const struct value_print_options *options,
const struct language_defn *language)
{
@ -1074,6 +1098,8 @@ val_print (struct type *type, const gdb_byte *valaddr, LONGEST embedded_offset,
if (!options->raw)
{
const gdb_byte *valaddr = value_contents_for_printing (val);
ret = apply_ext_lang_val_pretty_printer (type, valaddr, embedded_offset,
address, stream, recurse,
val, options, language);
@ -1091,7 +1117,7 @@ val_print (struct type *type, const gdb_byte *valaddr, LONGEST embedded_offset,
TRY
{
language->la_val_print (type, valaddr, embedded_offset, address,
language->la_val_print (type, embedded_offset, address,
stream, recurse, val,
&local_opts);
}
@ -1177,7 +1203,7 @@ common_val_print (struct value *val, struct ui_file *stream, int recurse,
get a fixed representation of our value. */
val = ada_to_fixed_value (val);
val_print (value_type (val), value_contents_for_printing (val),
val_print (value_type (val),
value_embedded_offset (val), value_address (val),
stream, recurse,
val, options, language);
@ -1303,8 +1329,8 @@ val_print_type_code_flags (struct type *type, const gdb_byte *valaddr,
void
val_print_scalar_formatted (struct type *type,
const gdb_byte *valaddr, LONGEST embedded_offset,
const struct value *val,
LONGEST embedded_offset,
struct value *val,
const struct value_print_options *options,
int size,
struct ui_file *stream)
@ -1313,7 +1339,6 @@ val_print_scalar_formatted (struct type *type,
int unit_size = gdbarch_addressable_memory_unit_size (arch);
gdb_assert (val != NULL);
gdb_assert (valaddr == value_contents_for_printing_const (val));
/* If we get here with a string format, try again without it. Go
all the way back to the language printers, which may call us
@ -1323,11 +1348,16 @@ val_print_scalar_formatted (struct type *type,
struct value_print_options opts = *options;
opts.format = 0;
opts.deref_ref = 0;
val_print (type, valaddr, embedded_offset, 0, stream, 0, val, &opts,
val_print (type, embedded_offset, 0, stream, 0, val, &opts,
current_language);
return;
}
/* value_contents_for_printing fetches all VAL's contents. They are
needed to check whether VAL is optimized-out or unavailable
below. */
const gdb_byte *valaddr = value_contents_for_printing (val);
/* A scalar object that does not have all bits available can't be
printed, because all bits contribute to its representation. */
if (value_bits_any_optimized_out (val,
@ -1965,10 +1995,10 @@ maybe_print_array_index (struct type *index_type, LONGEST index,
void
val_print_array_elements (struct type *type,
const gdb_byte *valaddr, LONGEST embedded_offset,
LONGEST embedded_offset,
CORE_ADDR address, struct ui_file *stream,
int recurse,
const struct value *val,
struct value *val,
const struct value_print_options *options,
unsigned int i)
{
@ -2066,7 +2096,7 @@ val_print_array_elements (struct type *type,
if (reps > options->repeat_count_threshold)
{
val_print (elttype, valaddr, embedded_offset + i * eltlen,
val_print (elttype, embedded_offset + i * eltlen,
address, stream, recurse + 1, val, options,
current_language);
annotate_elt_rep (reps);
@ -2078,7 +2108,7 @@ val_print_array_elements (struct type *type,
}
else
{
val_print (elttype, valaddr, embedded_offset + i * eltlen,
val_print (elttype, embedded_offset + i * eltlen,
address,
stream, recurse + 1, val, options, current_language);
annotate_elt ();

View File

@ -115,9 +115,9 @@ extern void maybe_print_array_index (struct type *index_type, LONGEST index,
struct ui_file *stream,
const struct value_print_options *);
extern void val_print_array_elements (struct type *, const gdb_byte *, LONGEST,
extern void val_print_array_elements (struct type *, LONGEST,
CORE_ADDR, struct ui_file *, int,
const struct value *,
struct value *,
const struct value_print_options *,
unsigned int);
@ -125,8 +125,8 @@ extern void val_print_type_code_int (struct type *, const gdb_byte *,
struct ui_file *);
extern void val_print_scalar_formatted (struct type *,
const gdb_byte *, LONGEST,
const struct value *,
LONGEST,
struct value *,
const struct value_print_options *,
int,
struct ui_file *);
@ -193,10 +193,10 @@ struct generic_val_print_decorations
};
extern void generic_val_print (struct type *type, const gdb_byte *valaddr,
extern void generic_val_print (struct type *type,
int embedded_offset, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *original_value,
struct value *original_value,
const struct value_print_options *options,
const struct generic_val_print_decorations *);

View File

@ -1016,10 +1016,10 @@ extern void value_print_array_elements (struct value *val,
extern struct value *value_release_to_mark (const struct value *mark);
extern void val_print (struct type *type, const gdb_byte *valaddr,
extern void val_print (struct type *type,
LONGEST embedded_offset, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *val,
struct value *val,
const struct value_print_options *options,
const struct language_defn *language);