/* Helper function for dwarf2_evaluate_loc_desc. Computes the CFA for
the frame in BATON. */
- CORE_ADDR get_frame_cfa () OVERRIDE
+ CORE_ADDR get_frame_cfa () override
{
return dwarf2_frame_cfa (frame);
}
/* Helper function for dwarf2_evaluate_loc_desc. Computes the PC for
the frame in BATON. */
- CORE_ADDR get_frame_pc () OVERRIDE
+ CORE_ADDR get_frame_pc () override
{
return get_frame_address_in_block (frame);
}
/* Using the objfile specified in BATON, find the address for the
current thread's thread-local storage with offset OFFSET. */
- CORE_ADDR get_tls_address (CORE_ADDR offset) OVERRIDE
+ CORE_ADDR get_tls_address (CORE_ADDR offset) override
{
struct objfile *objfile = dwarf2_per_cu_objfile (per_cu);
/* Helper interface of per_cu_dwarf_call for
dwarf2_evaluate_loc_desc. */
- void dwarf_call (cu_offset die_offset) OVERRIDE
+ void dwarf_call (cu_offset die_offset) override
{
per_cu_dwarf_call (this, die_offset, per_cu);
}
- struct type *get_base_type (cu_offset die_offset, int size) OVERRIDE
+ struct type *get_base_type (cu_offset die_offset, int size) override
{
struct type *result = dwarf2_get_die_type (die_offset, per_cu);
if (result == NULL)
/* Callback function for dwarf2_evaluate_loc_desc.
Fetch the address indexed by DW_OP_GNU_addr_index. */
- CORE_ADDR get_addr_index (unsigned int index) OVERRIDE
+ CORE_ADDR get_addr_index (unsigned int index) override
{
return dwarf2_read_addr_index (per_cu, index);
}
/* Callback function for get_object_address. Return the address of the VLA
object. */
- CORE_ADDR get_object_address () OVERRIDE
+ CORE_ADDR get_object_address () override
{
if (obj_address == 0)
error (_("Location address is not set."));
void push_dwarf_reg_entry_value (enum call_site_parameter_kind kind,
union call_site_parameter_u kind_u,
- int deref_size) OVERRIDE
+ int deref_size) override
{
struct frame_info *caller_frame;
struct dwarf2_per_cu_data *caller_per_cu;
/* Using the frame specified in BATON, find the location expression
describing the frame base. Return a pointer to it in START and
its length in LENGTH. */
- void get_frame_base (const gdb_byte **start, size_t * length) OVERRIDE
+ void get_frame_base (const gdb_byte **start, size_t * length) override
{
/* FIXME: cagney/2003-03-26: This code should be using
get_frame_base_address(), and then implement a dwarf2 specific
/* Read memory at ADDR (length LEN) into BUF. */
- void read_mem (gdb_byte *buf, CORE_ADDR addr, size_t len) OVERRIDE
+ void read_mem (gdb_byte *buf, CORE_ADDR addr, size_t len) override
{
read_memory (addr, buf, len);
}
/* Using the frame specified in BATON, return the value of register
REGNUM, treated as a pointer. */
- CORE_ADDR read_addr_from_reg (int dwarf_regnum) OVERRIDE
+ CORE_ADDR read_addr_from_reg (int dwarf_regnum) override
{
struct gdbarch *gdbarch = get_frame_arch (frame);
int regnum = dwarf_reg_to_regnum_or_error (gdbarch, dwarf_regnum);
/* Implement "get_reg_value" callback. */
- struct value *get_reg_value (struct type *type, int dwarf_regnum) OVERRIDE
+ struct value *get_reg_value (struct type *type, int dwarf_regnum) override
{
struct gdbarch *gdbarch = get_frame_arch (frame);
int regnum = dwarf_reg_to_regnum_or_error (gdbarch, dwarf_regnum);
{
struct value *target_val = (struct value *) value_computed_closure (v);
- value_free (target_val);
+ value_decref (target_val);
}
/* Vector for methods for an entry value reference where the referenced value
target_type, caller_frame,
caller_per_cu);
- release_value (target_val);
+ release_value (target_val).release ();
val = allocate_computed_value (type, &entry_data_value_funcs,
target_val /* closure */);
{
for (dwarf_expr_piece &p : c->pieces)
if (p.location == DWARF_VALUE_STACK)
- value_free (p.v.value);
+ value_decref (p.v.value);
delete c;
}
/* Preserve VALUE because we are going to free values back
to the mark, but we still need the value contents
below. */
- value_incref (value);
+ value_ref_ptr value_holder = value_ref_ptr::new_reference (value);
free_values.free_to_mark ();
- gdb_value_up value_holder (value);
retval = allocate_value (subobj_type);
struct dwarf2_per_cu_data *per_cu;
/* Reads from registers do require a frame. */
- CORE_ADDR read_addr_from_reg (int regnum) OVERRIDE
+ CORE_ADDR read_addr_from_reg (int regnum) override
{
needs = SYMBOL_NEEDS_FRAME;
return 1;
/* "get_reg_value" callback: Reads from registers do require a
frame. */
- struct value *get_reg_value (struct type *type, int regnum) OVERRIDE
+ struct value *get_reg_value (struct type *type, int regnum) override
{
needs = SYMBOL_NEEDS_FRAME;
return value_zero (type, not_lval);
}
/* Reads from memory do not require a frame. */
- void read_mem (gdb_byte *buf, CORE_ADDR addr, size_t len) OVERRIDE
+ void read_mem (gdb_byte *buf, CORE_ADDR addr, size_t len) override
{
memset (buf, 0, len);
}
/* Frame-relative accesses do require a frame. */
- void get_frame_base (const gdb_byte **start, size_t *length) OVERRIDE
+ void get_frame_base (const gdb_byte **start, size_t *length) override
{
static gdb_byte lit0 = DW_OP_lit0;
}
/* CFA accesses require a frame. */
- CORE_ADDR get_frame_cfa () OVERRIDE
+ CORE_ADDR get_frame_cfa () override
{
needs = SYMBOL_NEEDS_FRAME;
return 1;
}
- CORE_ADDR get_frame_pc () OVERRIDE
+ CORE_ADDR get_frame_pc () override
{
needs = SYMBOL_NEEDS_FRAME;
return 1;
}
/* Thread-local accesses require registers, but not a frame. */
- CORE_ADDR get_tls_address (CORE_ADDR offset) OVERRIDE
+ CORE_ADDR get_tls_address (CORE_ADDR offset) override
{
if (needs <= SYMBOL_NEEDS_REGISTERS)
needs = SYMBOL_NEEDS_REGISTERS;
/* Helper interface of per_cu_dwarf_call for
dwarf2_loc_desc_get_symbol_read_needs. */
- void dwarf_call (cu_offset die_offset) OVERRIDE
+ void dwarf_call (cu_offset die_offset) override
{
per_cu_dwarf_call (this, die_offset, per_cu);
}
void push_dwarf_reg_entry_value (enum call_site_parameter_kind kind,
union call_site_parameter_u kind_u,
- int deref_size) OVERRIDE
+ int deref_size) override
{
needs = SYMBOL_NEEDS_FRAME;
/* DW_OP_GNU_addr_index doesn't require a frame. */
- CORE_ADDR get_addr_index (unsigned int index) OVERRIDE
+ CORE_ADDR get_addr_index (unsigned int index) override
{
/* Nothing to do. */
return 1;
/* DW_OP_push_object_address has a frame already passed through. */
- CORE_ADDR get_object_address () OVERRIDE
+ CORE_ADDR get_object_address () override
{
/* Nothing to do. */
return 1;
/* A helper function that throws an unimplemented error mentioning a
given DWARF operator. */
-static void
+static void ATTRIBUTE_NORETURN
unimplemented (unsigned int op)
{
const char *name = get_DW_OP_name (op);
if (reg == -1)
{
- complaint (&symfile_complaints,
- _("bad DWARF register number %d"), dwarf_reg);
+ complaint (_("bad DWARF register number %d"), dwarf_reg);
}
return reg;
}