#include "dwarf2/expr.h"
struct symbol_computed_ops;
-struct objfile;
+struct dwarf2_per_objfile;
struct dwarf2_per_cu_data;
struct dwarf2_loclist_baton;
struct agent_expr;
size_t *locexpr_length,
CORE_ADDR pc);
-struct dwarf2_locexpr_baton dwarf2_fetch_die_loc_sect_off
- (sect_offset offset_in_cu, struct dwarf2_per_cu_data *per_cu,
- CORE_ADDR (*get_frame_pc) (void *baton),
- void *baton, bool resolve_abstract_p = false);
-
-struct dwarf2_locexpr_baton dwarf2_fetch_die_loc_cu_off
- (cu_offset offset_in_cu, struct dwarf2_per_cu_data *per_cu,
- CORE_ADDR (*get_frame_pc) (void *baton),
- void *baton);
-
-extern const gdb_byte *dwarf2_fetch_constant_bytes (sect_offset,
- struct dwarf2_per_cu_data *,
- struct obstack *,
- LONGEST *);
-
-struct type *dwarf2_fetch_die_type_sect_off (sect_offset,
- struct dwarf2_per_cu_data *);
-
/* Find the frame base information for FRAMEFUNC at PC. START is an
out parameter which is set to point to the DWARF expression to
compute. LENGTH is an out parameter which is set to the length of
struct frame_info *frame,
const gdb_byte *data,
size_t size,
- struct dwarf2_per_cu_data *per_cu);
+ dwarf2_per_cu_data *per_cu,
+ dwarf2_per_objfile *per_objfile);
/* A chain of addresses that might be needed to resolve a dynamic
property. */
struct type *type;
/* If not NULL, a buffer containing the object's value. */
- const gdb_byte *valaddr;
+ gdb::array_view<const gdb_byte> valaddr;
/* The address of that object. */
CORE_ADDR addr;
be NULL.
Returns true if PROP could be converted and the static value is passed
- back into VALUE, otherwise returns false. */
+ back into VALUE, otherwise returns false.
+
+ If PUSH_INITIAL_VALUE is true, then the top value of ADDR_STACK
+ will be pushed before evaluating a location expression. */
bool dwarf2_evaluate_property (const struct dynamic_prop *prop,
struct frame_info *frame,
- struct property_addr_info *addr_stack,
- CORE_ADDR *value);
+ const struct property_addr_info *addr_stack,
+ CORE_ADDR *value,
+ bool push_initial_value = false);
/* A helper for the compiler interface that compiles a single dynamic
property to C code.
CORE_ADDR address,
struct symbol *sym);
-CORE_ADDR dwarf2_read_addr_index (struct dwarf2_per_cu_data *per_cu,
- unsigned int addr_index);
-
/* The symbol location baton types used by the DWARF-2 reader (i.e.
SYMBOL_LOCATION_BATON for a LOC_COMPUTED symbol). "struct
dwarf2_locexpr_baton" is for a symbol with a single location
directly. */
bool is_reference;
+ /* The objfile that was used when creating this. */
+ dwarf2_per_objfile *per_objfile;
+
/* The compilation unit containing the symbol whose location
we're computing. */
struct dwarf2_per_cu_data *per_cu;
/* Length of the location list. */
size_t size;
+ /* The objfile that was used when creating this. */
+ dwarf2_per_objfile *per_objfile;
+
/* The compilation unit containing the symbol whose location
we're computing. */
struct dwarf2_per_cu_data *per_cu;