forked from Imagelibrary/binutils-gdb
Fix struct, union, and enum nesting in C++
In C, an enum or structure defined inside other structure has global scope just like it had been defined outside the struct in the first place. However, in C++, such a nested structure is given a name that is nested inside the structure. This patch moves such affected structures/enums out to global scope, so that code using them works the same in C++ as it works today in C. gdb/ChangeLog: 2015-02-27 Tom Tromey <tromey@redhat.com> Pedro Alves <palves@redhat.com> * dwarf2-frame.c (enum cfa_how_kind, struct dwarf2_frame_state_reg_info): Move out of struct dwarf2_frame_state. * dwarf2read.c (struct tu_stats): Move out of struct dwarf2_per_objfile. (struct file_entry): Move out of struct line_header. (struct nextfield, struct nextfnfield, struct fnfieldlist, struct typedef_field_list): Move out of struct field_info. * gdbtypes.h (enum dynamic_prop_kind, union dynamic_prop_data): Move out of struct dynamic_prop. (union type_owner, union field_location, struct field, struct range_bounds, union type_specific): Move out of struct main_type. (struct fn_fieldlist, struct fn_field, struct typedef_field) (VOFFSET_STATIC): Move out of struct cplus_struct_type. (struct call_site_target, union call_site_parameter_u, struct call_site_parameter): Move out of struct call_site. * m32c-tdep.c (enum m32c_prologue_kind): Move out of struct m32c_prologue. (enum srcdest_kind): Move out of struct srcdest. * main.c (enum cmdarg_kind): Move out of struct cmdarg. * prologue-value.h (enum prologue_value_kind): Move out of struct prologue_value. * s390-linux-tdep.c (enum s390_abi_kind): Move out of struct gdbarch_tdep. * stabsread.c (struct nextfield, struct next_fnfieldlist): Move out of struct field_info. * symfile.h (struct other_sections): Move out of struct section_addr_info. * symtab.c (struct symbol_cache_slot): Move out struct block_symbol_cache. * target-descriptions.c (enum tdesc_type_kind): Move out of typedef struct tdesc_type. * tui/tui-data.h (enum tui_line_or_address_kind): Move out of struct tui_line_or_address. * value.c (enum internalvar_kind, union internalvar_data): Move out of struct internalvar. * xtensa-tdep.h (struct ctype_cache): Move out of struct gdbarch_tdep.
This commit is contained in:
@@ -165,29 +165,34 @@ static CORE_ADDR read_encoded_value (struct comp_unit *unit, gdb_byte encoding,
|
||||
CORE_ADDR func_base);
|
||||
|
||||
|
||||
enum cfa_how_kind
|
||||
{
|
||||
CFA_UNSET,
|
||||
CFA_REG_OFFSET,
|
||||
CFA_EXP
|
||||
};
|
||||
|
||||
struct dwarf2_frame_state_reg_info
|
||||
{
|
||||
struct dwarf2_frame_state_reg *reg;
|
||||
int num_regs;
|
||||
|
||||
LONGEST cfa_offset;
|
||||
ULONGEST cfa_reg;
|
||||
enum cfa_how_kind cfa_how;
|
||||
const gdb_byte *cfa_exp;
|
||||
|
||||
/* Used to implement DW_CFA_remember_state. */
|
||||
struct dwarf2_frame_state_reg_info *prev;
|
||||
};
|
||||
|
||||
/* Structure describing a frame state. */
|
||||
|
||||
struct dwarf2_frame_state
|
||||
{
|
||||
/* Each register save state can be described in terms of a CFA slot,
|
||||
another register, or a location expression. */
|
||||
struct dwarf2_frame_state_reg_info
|
||||
{
|
||||
struct dwarf2_frame_state_reg *reg;
|
||||
int num_regs;
|
||||
|
||||
LONGEST cfa_offset;
|
||||
ULONGEST cfa_reg;
|
||||
enum {
|
||||
CFA_UNSET,
|
||||
CFA_REG_OFFSET,
|
||||
CFA_EXP
|
||||
} cfa_how;
|
||||
const gdb_byte *cfa_exp;
|
||||
|
||||
/* Used to implement DW_CFA_remember_state. */
|
||||
struct dwarf2_frame_state_reg_info *prev;
|
||||
} regs;
|
||||
struct dwarf2_frame_state_reg_info regs;
|
||||
|
||||
/* The PC described by the current frame state. */
|
||||
CORE_ADDR pc;
|
||||
|
||||
Reference in New Issue
Block a user