* gdbtypes.c (make_pointer_type, make_reference_type,
smash_to_memberptr_type, lookup_array_range_type, check_stub_method): Use type architecture instead of current_gdbarch. * gdbtypes.h (address_space_name_to_int, address_space_int_to_name): Add GDBARCH paramter. * gdbtypes.c (address_space_name_to_int, address_space_int_to_name): Add GDBARCH parameter. Use it instead of current_gdbarch. * c-typeprint.c (c_type_print_modifier): Update call. * parse.c (push_type_address_space): Likewise. * findvar.c (extract_typed_address, store_typed_address): Use type architecture instead of current_gdbarch. * value.c (value_as_address, unpack_field_as_long): Use type architecture instead of current_gdbarch. * doublest.c (floatformat_from_length): Add GDBARCH argument. Use it instead of current_gdbarch. (floatformat_from_type): Pass type architecture. * infcall.c (find_function_addr): Use type architecture instead of current_gdbarch. * valarith.c (value_bitstring_subscript, value_x_binop, value_neg, value_bit_index): Use type architecture instead of current_gdbarch. * valops.c (value_cast, value_slice): Likewise. * value.h (modify_field): Add TYPE argument. * value.c (modify_field): Add TYPE argument. Use type architecture instead of current_gdbarch. (set_internalvar_component): Likewise. * eval.c (evaluate_struct_tuple): Update call. * valops.c (value_assign): Likewise. * ada-lang.c (modify_general_field): Likewise. Add TYPE argument. (make_array_descriptor): Update calls. (move_bits): Add BITS_BIG_ENDIAN_P argument. Use it instead of current_gdbarch. (ada_value_assign, value_assign_to_component): Update calls. (decode_packed_array, ada_value_primitive_packed_val, ada_value_assign, value_assign_to_component): Use type arch instead of current_gdbarch. * printcmd.c (float_type_from_length): Remove GDBARCH argument, use type architecture instead. (print_scalar_formatted, printf_command): Update calls. Use type architecture instead of current_gdbarch. * valprint.c (val_print_type_code_int): Use type architecture instead of current_gdbarch. * varobj.c (value_get_print_value): Likewise. * python/python-prettyprint.c (print_string_repr): Add GDBARCH argument. Use it instead of current_gdbarch. (apply_val_pretty_printer): Update call. * ada-valprint.c (ada_val_print_1): Use type architecture instead of current_gdbarch. * c-valprint.c (print_function_pointer_address): Add GDBARCH argument. Use it instead of current_gdbarch. (c_val_print): Update calls passing type architecture. * f-valprint.c (f_val_print): Use type architecture instead of current_gdbarch. * jv-valprint (java_value_print): Likewise. * m2-valprint.c (print_function_pointer_address): Add GDBARCH argument. Use it instead of current_gdbarch. (print_unpacked_pointer): Update calls passing type architecture. * scm-valprint.c (scm_scmval_print): Use type architecture instead of current_gdbarch. * gnu-v3-abi.c (get_class_arch): Remove. (gnuv3_rtti_type): Use get_type_arch instead of get_class_arch. Remove special-case check for Java classes. (gnuv3_virtual_fn_field, gnuv3_baseclass_offset, gnuv3_print_method_ptr, gnuv3_method_ptr_size, gnuv3_make_method_ptr, gnuv3_method_ptr_to_value): Use get_type_arch instead of get_class_arch.
This commit is contained in:
parent
e9bb382b83
commit
5081068481
25 changed files with 220 additions and 147 deletions
|
@ -317,8 +317,9 @@ print_formatted (struct value *val, int size,
|
|||
/* Return builtin floating point type of same length as TYPE.
|
||||
If no such type is found, return TYPE itself. */
|
||||
static struct type *
|
||||
float_type_from_length (struct gdbarch *gdbarch, struct type *type)
|
||||
float_type_from_length (struct type *type)
|
||||
{
|
||||
struct gdbarch *gdbarch = get_type_arch (type);
|
||||
const struct builtin_type *builtin = builtin_type (gdbarch);
|
||||
unsigned int len = TYPE_LENGTH (type);
|
||||
|
||||
|
@ -344,7 +345,7 @@ print_scalar_formatted (const void *valaddr, struct type *type,
|
|||
const struct value_print_options *options,
|
||||
int size, struct ui_file *stream)
|
||||
{
|
||||
struct gdbarch *gdbarch = current_gdbarch;
|
||||
struct gdbarch *gdbarch = get_type_arch (type);
|
||||
LONGEST val_long = 0;
|
||||
unsigned int len = TYPE_LENGTH (type);
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
|
@ -466,7 +467,7 @@ print_scalar_formatted (const void *valaddr, struct type *type,
|
|||
break;
|
||||
|
||||
case 'f':
|
||||
type = float_type_from_length (current_gdbarch, type);
|
||||
type = float_type_from_length (type);
|
||||
print_floating (valaddr, type, stream);
|
||||
break;
|
||||
|
||||
|
@ -2275,8 +2276,9 @@ printf_command (char *arg, int from_tty)
|
|||
gdb_byte *str;
|
||||
CORE_ADDR tem;
|
||||
int j;
|
||||
struct type *wctype = lookup_typename (current_language,
|
||||
current_gdbarch,
|
||||
struct gdbarch *gdbarch
|
||||
= get_type_arch (value_type (val_args[i]));
|
||||
struct type *wctype = lookup_typename (current_language, gdbarch,
|
||||
"wchar_t", NULL, 0);
|
||||
int wcwidth = TYPE_LENGTH (wctype);
|
||||
gdb_byte *buf = alloca (wcwidth);
|
||||
|
@ -2315,8 +2317,9 @@ printf_command (char *arg, int from_tty)
|
|||
break;
|
||||
case wide_char_arg:
|
||||
{
|
||||
struct type *wctype = lookup_typename (current_language,
|
||||
current_gdbarch,
|
||||
struct gdbarch *gdbarch
|
||||
= get_type_arch (value_type (val_args[i]));
|
||||
struct type *wctype = lookup_typename (current_language, gdbarch,
|
||||
"wchar_t", NULL, 0);
|
||||
struct type *valtype;
|
||||
struct obstack output;
|
||||
|
@ -2352,7 +2355,7 @@ printf_command (char *arg, int from_tty)
|
|||
|
||||
/* If format string wants a float, unchecked-convert the value
|
||||
to floating point of the same size. */
|
||||
type = float_type_from_length (current_gdbarch, type);
|
||||
type = float_type_from_length (type);
|
||||
val = unpack_double (type, value_contents (val_args[i]), &inv);
|
||||
if (inv)
|
||||
error (_("Invalid floating value found in program."));
|
||||
|
@ -2369,7 +2372,7 @@ printf_command (char *arg, int from_tty)
|
|||
|
||||
/* If format string wants a float, unchecked-convert the value
|
||||
to floating point of the same size. */
|
||||
type = float_type_from_length (current_gdbarch, type);
|
||||
type = float_type_from_length (type);
|
||||
val = unpack_double (type, value_contents (val_args[i]), &inv);
|
||||
if (inv)
|
||||
error (_("Invalid floating value found in program."));
|
||||
|
@ -2423,6 +2426,7 @@ printf_command (char *arg, int from_tty)
|
|||
/* Parameter data. */
|
||||
struct type *param_type = value_type (val_args[i]);
|
||||
unsigned int param_len = TYPE_LENGTH (param_type);
|
||||
struct gdbarch *gdbarch = get_type_arch (param_type);
|
||||
|
||||
/* DFP output data. */
|
||||
struct value *dfp_value = NULL;
|
||||
|
@ -2451,18 +2455,18 @@ printf_command (char *arg, int from_tty)
|
|||
if (*sos == 'H')
|
||||
{
|
||||
dfp_len = 4;
|
||||
dfp_type = builtin_type (current_gdbarch)->builtin_decfloat;
|
||||
dfp_type = builtin_type (gdbarch)->builtin_decfloat;
|
||||
}
|
||||
else if (*sos == 'D' && *(sos - 1) == 'D')
|
||||
{
|
||||
dfp_len = 16;
|
||||
dfp_type = builtin_type (current_gdbarch)->builtin_declong;
|
||||
dfp_type = builtin_type (gdbarch)->builtin_declong;
|
||||
sos--;
|
||||
}
|
||||
else
|
||||
{
|
||||
dfp_len = 8;
|
||||
dfp_type = builtin_type (current_gdbarch)->builtin_decdouble;
|
||||
dfp_type = builtin_type (gdbarch)->builtin_decdouble;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue