#if !defined (DWARF2LOC_H)
#define DWARF2LOC_H
+#include "dwarf2expr.h"
+
struct symbol_computed_ops;
struct objfile;
struct dwarf2_per_cu_data;
struct objfile *dwarf2_per_cu_objfile (struct dwarf2_per_cu_data *cu);
/* Return the address size given in the compilation unit header for CU. */
-CORE_ADDR dwarf2_per_cu_addr_size (struct dwarf2_per_cu_data *cu);
+int dwarf2_per_cu_addr_size (struct dwarf2_per_cu_data *cu);
/* Return the DW_FORM_ref_addr size given in the compilation unit header for
CU. */
CORE_ADDR pc);
struct dwarf2_locexpr_baton dwarf2_fetch_die_location_block
- (unsigned int offset, struct dwarf2_per_cu_data *per_cu,
+ (cu_offset offset_in_cu, struct dwarf2_per_cu_data *per_cu,
CORE_ADDR (*get_frame_pc) (void *baton),
void *baton);
-struct type *dwarf2_get_die_type (unsigned int die_offset,
+struct type *dwarf2_get_die_type (cu_offset die_offset,
struct dwarf2_per_cu_data *per_cu);
/* Evaluate a location description, starting at DATA and with length
unsigned short size,
struct dwarf2_per_cu_data *per_cu);
+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
/* The compilation unit containing the symbol whose location
we're computing. */
struct dwarf2_per_cu_data *per_cu;
+
+ /* Non-zero if the location list lives in .debug_loc.dwo.
+ The format of entries in this section are different. */
+ unsigned char from_dwo;
};
extern const struct symbol_computed_ops dwarf2_locexpr_funcs;