/* Support for printing C values for GDB, the GNU debugger.
- Copyright (C) 1986-2021 Free Software Foundation, Inc.
+ Copyright (C) 1986-2022 Free Software Foundation, Inc.
This file is part of GDB.
if (wsym)
{
- wtype = SYMBOL_TYPE (wsym);
+ wtype = wsym->type ();
}
else
{
{
struct type *type = check_typedef (value_type (val));
CORE_ADDR address = value_address (val);
- const gdb_byte *valaddr = value_contents_for_printing (val);
+ const gdb_byte *valaddr = value_contents_for_printing (val).data ();
struct type *unresolved_elttype = TYPE_TARGET_TYPE (type);
struct type *elttype = check_typedef (unresolved_elttype);
++temp_len)
;
- /* Force LA_PRINT_STRING to print ellipses if
+ /* Force printstr to print ellipses if
we've printed the maximum characters and
the next character is not \000. */
if (temp_len == options->print_max && temp_len < len)
len = temp_len;
}
- LA_PRINT_STRING (stream, unresolved_elttype, valaddr, len,
- NULL, force_ellipses, options);
+ current_language->printstr (stream, unresolved_elttype, valaddr, len,
+ NULL, force_ellipses, options);
}
else
{
}
struct type *type = check_typedef (value_type (val));
- const gdb_byte *valaddr = value_contents_for_printing (val);
+ const gdb_byte *valaddr = value_contents_for_printing (val).data ();
if (options->vtblprint && cp_is_vtbl_ptr_type (type))
{
/* Print vtable entry - we only get here if NOT using
-fvtable_thunks. (Otherwise, look under
TYPE_CODE_PTR.) */
- int offset = TYPE_FIELD_BITPOS (type, VTBL_FNADDR_OFFSET) / 8;
+ int offset = type->field (VTBL_FNADDR_OFFSET).loc_bitpos () / 8;
struct type *field_type = type->field (VTBL_FNADDR_OFFSET).type ();
- const gdb_byte *valaddr = value_contents_for_printing (val);
+ const gdb_byte *valaddr = value_contents_for_printing (val).data ();
CORE_ADDR addr = extract_typed_address (valaddr + offset, field_type);
print_function_pointer_address (options, type->arch (), addr, stream);
intended to be used as an integer or a character, print
the character equivalent as well. */
struct type *type = value_type (val);
- const gdb_byte *valaddr = value_contents_for_printing (val);
+ const gdb_byte *valaddr = value_contents_for_printing (val).data ();
if (c_textual_element_type (type, options->format))
{
fputs_filtered (" ", stream);
- LA_PRINT_CHAR (unpack_long (type, valaddr), type, stream);
+ current_language->printchar (unpack_long (type, valaddr), type,
+ stream);
}
}
}
c_value_print_struct (val, stream, recurse, options);
break;
+ case TYPE_CODE_CHAR:
case TYPE_CODE_INT:
c_value_print_int (val, stream, options);
break;
case TYPE_CODE_ERROR:
case TYPE_CODE_UNDEF:
case TYPE_CODE_COMPLEX:
- case TYPE_CODE_CHAR:
default:
generic_value_print (val, stream, recurse, options, &c_decorations);
break;
type = check_typedef (value_type (val));
- if (type->code () == TYPE_CODE_PTR || TYPE_IS_REFERENCE (type))
+ if (type->is_pointer_or_reference ())
{
struct type *original_type = value_type (val);