From: Tom Tromey Date: Fri, 4 Dec 2020 20:09:43 +0000 (-0700) Subject: Remove redundant typedefs X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f99b517750fd5ab392056fcc8868fc15641ec502;p=binutils-gdb.git Remove redundant typedefs I was inspired by this patch of Simon's: https://sourceware.org/pipermail/gdb-patches/2020-November/173522.html ... to remove other typedefs that are no longer necessary now that gdb uses C++. I didn't remove absolutely every one -- I didn't touch the tdep files. However, I removed many of them. In some cases, I removed an existing different struct tag. 2020-12-04 Tom Tromey * linespec.c (struct linespec_token): Rename; remove typedef. * guile/scm-block.c (struct block_smob): Remove typedef. (struct block_syms_progress_smob): Likewise. * guile/scm-symbol.c (struct symbol_smob): Remove typedef. * guile/scm-symtab.c (symtab_smob): Remove typedef. (struct sal_smob): Remove typedef. * guile/scm-param.c (struct param_smob): Remove typedef. * guile/scm-progspace.c (struct pspace_smob): Rename. * guile/scm-objfile.c (struct objfile_smob): Rename. * guile/scm-iterator.c (struct iterator_smob): Rename. * guile/scm-frame.c (struct frame_smob): Rename. * guile/scm-arch.c (struct arch_smob): Rename. * guile/scm-type.c (struct field_smob): Remove typedef. (struct type_smob): Rename. * guile/scm-cmd.c (struct command_smob): Remove typedef. * guile/scm-ports.c (struct ioscm_memory_port): Remove typedef. * guile/scm-value.c (struct value_smob): Remove typedef. * guile/scm-lazy-string.c (lazy_string_smob): Remove typedef. * guile/guile-internal.h (struct scheme_variable) (struct scheme_function, struct scheme_integer_constant) (struct gdb_smob, struct chained_gdb_smob) (struct eqable_gdb_smob, arch_smob, frame_smob, iterator_smob) (objfile_smob, pspace_smob, type_smob): Remove typedef. * guile/scm-pretty-print.c (pretty_printer_smob): Remove typedef. (struct pretty_printer_worker_smob): Remove typedef. * guile/scm-exception.c (struct exception_smob): Remove typedef. * python/py-block.c (struct block_object): Remove typedef. (block_syms_iterator_object): Update. (set_block): Update. (block_syms_iterator_object): Remove typedef. * python/py-inferior.c (struct membuf_object): Remove typedef. * python/py-symtab.c (struct symtab_object): Remove typedef. (set_symtab): Update. (sal_object): Remove typedef. (set_sal): Update. * python/py-frame.c (frame_object): Remove typedef. * python/py-record-btrace.c (struct btpy_list_object): Remove typedef. * python/py-arch.c (struct arch_object): Remove typedef. * python/py-linetable.c (struct linetable_entry_object) (linetable_object, struct ltpy_iterator_object): Remove typedef. * python/py-events.h (eventregistry_object): Remove typedef. (struct events_object): Remove typedef. * python/python-internal.h (gdbpy_breakpoint_object): Remove typedef. (thread_object): Remove typedef. * python/py-progspace.c (pspace_object): Remove typedef. * python/py-value.c (struct value_object): Remove typedef. * python/py-record.h (recpy_record_object): Remove typedef. (struct recpy_element_object): Remove typedef. * python/py-lazy-string.c (lazy_string_object): Remove typedef. * python/py-objfile.c (objfile_object): Remove typedef. * python/py-cmd.c (struct cmdpy_object): Remove typedef. * python/py-type.c (type_object): Remove typedef. (typy_iterator_object): Update. (set_type): Update. (field_object): Remove typedef. (typy_iterator_object): Remove typedef. * python/py-registers.c (register_descriptor_iterator_object): Remove typedef. (struct register_descriptor_object) (struct reggroup_iterator_object, struct reggroup_object): Remove typedef. * python/py-record.c (recpy_gap_object): Remove typedef. * python/py-symbol.c (symbol_object): Remove typedef. (set_symbol): Update. * python/py-event.h (event_object): Remove typedef. * python/py-param.c (parmpy_object): Remove typedef. * python/py-instruction.c (struct py_insn_obj): Remove typedef. * python/py-unwind.c (struct pending_frame_object): Remove typedef. (unwind_info_object, struct cached_frame_info): Likewise. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 921b694c627..eae761b7f12 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,77 @@ +2020-12-04 Tom Tromey + + * linespec.c (struct linespec_token): Rename; remove typedef. + * guile/scm-block.c (struct block_smob): Remove typedef. + (struct block_syms_progress_smob): Likewise. + * guile/scm-symbol.c (struct symbol_smob): Remove typedef. + * guile/scm-symtab.c (symtab_smob): Remove typedef. + (struct sal_smob): Remove typedef. + * guile/scm-param.c (struct param_smob): Remove typedef. + * guile/scm-progspace.c (struct pspace_smob): Rename. + * guile/scm-objfile.c (struct objfile_smob): Rename. + * guile/scm-iterator.c (struct iterator_smob): Rename. + * guile/scm-frame.c (struct frame_smob): Rename. + * guile/scm-arch.c (struct arch_smob): Rename. + * guile/scm-type.c (struct field_smob): Remove typedef. + (struct type_smob): Rename. + * guile/scm-cmd.c (struct command_smob): Remove typedef. + * guile/scm-ports.c (struct ioscm_memory_port): Remove typedef. + * guile/scm-value.c (struct value_smob): Remove typedef. + * guile/scm-lazy-string.c (lazy_string_smob): Remove typedef. + * guile/guile-internal.h (struct scheme_variable) + (struct scheme_function, struct scheme_integer_constant) + (struct gdb_smob, struct chained_gdb_smob) + (struct eqable_gdb_smob, arch_smob, frame_smob, iterator_smob) + (objfile_smob, pspace_smob, type_smob): Remove typedef. + * guile/scm-pretty-print.c (pretty_printer_smob): Remove typedef. + (struct pretty_printer_worker_smob): Remove typedef. + * guile/scm-exception.c (struct exception_smob): Remove typedef. + * python/py-block.c (struct block_object): Remove typedef. + (block_syms_iterator_object): Update. + (set_block): Update. + (block_syms_iterator_object): Remove typedef. + * python/py-inferior.c (struct membuf_object): Remove typedef. + * python/py-symtab.c (struct symtab_object): Remove typedef. + (set_symtab): Update. + (sal_object): Remove typedef. + (set_sal): Update. + * python/py-frame.c (frame_object): Remove typedef. + * python/py-record-btrace.c (struct btpy_list_object): Remove + typedef. + * python/py-arch.c (struct arch_object): Remove typedef. + * python/py-linetable.c (struct linetable_entry_object) + (linetable_object, struct ltpy_iterator_object): Remove typedef. + * python/py-events.h (eventregistry_object): Remove typedef. + (struct events_object): Remove typedef. + * python/python-internal.h (gdbpy_breakpoint_object): Remove + typedef. + (thread_object): Remove typedef. + * python/py-progspace.c (pspace_object): Remove typedef. + * python/py-value.c (struct value_object): Remove typedef. + * python/py-record.h (recpy_record_object): Remove typedef. + (struct recpy_element_object): Remove typedef. + * python/py-lazy-string.c (lazy_string_object): Remove typedef. + * python/py-objfile.c (objfile_object): Remove typedef. + * python/py-cmd.c (struct cmdpy_object): Remove typedef. + * python/py-type.c (type_object): Remove typedef. + (typy_iterator_object): Update. + (set_type): Update. + (field_object): Remove typedef. + (typy_iterator_object): Remove typedef. + * python/py-registers.c (register_descriptor_iterator_object): + Remove typedef. + (struct register_descriptor_object) + (struct reggroup_iterator_object, struct reggroup_object): Remove + typedef. + * python/py-record.c (recpy_gap_object): Remove typedef. + * python/py-symbol.c (symbol_object): Remove typedef. + (set_symbol): Update. + * python/py-event.h (event_object): Remove typedef. + * python/py-param.c (parmpy_object): Remove typedef. + * python/py-instruction.c (struct py_insn_obj): Remove typedef. + * python/py-unwind.c (struct pending_frame_object): Remove typedef. + (unwind_info_object, struct cached_frame_info): Likewise. + 2020-12-04 Tom Tromey * value.c (value_internal_function_name): Make return type const. diff --git a/gdb/guile/guile-internal.h b/gdb/guile/guile-internal.h index bb2bc119187..4dd7023fbf9 100644 --- a/gdb/guile/guile-internal.h +++ b/gdb/guile/guile-internal.h @@ -40,12 +40,12 @@ typedef int excp_matcher_func (SCM key); /* Scheme variables to define during initialization. */ -typedef struct +struct scheme_variable { const char *name; SCM value; const char *doc_string; -} scheme_variable; +}; /* End of scheme_variable table mark. */ @@ -89,7 +89,7 @@ as_a_scm_t_subr (SCM (*func) (SCM, SCM, SCM)) /* Scheme functions to define during initialization. */ -typedef struct +struct scheme_function { const char *name; int required; @@ -97,7 +97,7 @@ typedef struct int rest; scm_t_subr func; const char *doc_string; -} scheme_function; +}; /* End of scheme_function table mark. */ @@ -105,11 +105,11 @@ typedef struct /* Useful for defining a set of constants. */ -typedef struct +struct scheme_integer_constant { const char *name; int value; -} scheme_integer_constant; +}; #define END_INTEGER_CONSTANTS { NULL, 0 } @@ -239,20 +239,20 @@ extern int gdbscm_guile_version_is_at_least (int major, int minor, int micro); #define GDB_SMOB_HEAD \ int empty_base_class; -typedef struct +struct gdb_smob { GDB_SMOB_HEAD -} gdb_smob; +}; -typedef struct _chained_gdb_smob +struct chained_gdb_smob { GDB_SMOB_HEAD - struct _chained_gdb_smob *prev; - struct _chained_gdb_smob *next; -} chained_gdb_smob; + chained_gdb_smob *prev; + chained_gdb_smob *next; +}; -typedef struct _eqable_gdb_smob +struct eqable_gdb_smob { GDB_SMOB_HEAD @@ -267,7 +267,7 @@ typedef struct _eqable_gdb_smob we need to invalidate the objects: we can do that using the same hashtab used to record the smob for eq-ability. */ SCM containing_scm; -} eqable_gdb_smob; +}; #undef GDB_SMOB_HEAD @@ -416,7 +416,7 @@ extern void gdbscm_enter_repl (void); /* scm-arch.c */ -typedef struct _arch_smob arch_smob; +struct arch_smob; extern struct gdbarch *arscm_get_gdbarch (arch_smob *a_smob); @@ -447,7 +447,7 @@ extern char *gdbscm_canonicalize_command_name (const char *name, /* scm-frame.c */ -typedef struct _frame_smob frame_smob; +struct frame_smob; extern int frscm_is_frame (SCM scm); @@ -458,7 +458,7 @@ extern struct frame_info *frscm_frame_smob_to_frame (frame_smob *); /* scm-iterator.c */ -typedef struct _iterator_smob iterator_smob; +struct iterator_smob; extern SCM itscm_iterator_smob_object (iterator_smob *i_smob); @@ -500,7 +500,7 @@ extern void lsscm_val_print_lazy_string /* scm-objfile.c */ -typedef struct _objfile_smob objfile_smob; +struct objfile_smob; extern SCM ofscm_objfile_smob_pretty_printers (objfile_smob *o_smob); @@ -510,7 +510,7 @@ extern SCM ofscm_scm_from_objfile (struct objfile *objfile); /* scm-progspace.c */ -typedef struct _pspace_smob pspace_smob; +struct pspace_smob; extern SCM psscm_pspace_smob_pretty_printers (const pspace_smob *); @@ -557,7 +557,7 @@ extern SCM stscm_scm_from_sal (struct symtab_and_line sal); /* scm-type.c */ -typedef struct _type_smob type_smob; +struct type_smob; extern int tyscm_is_type (SCM scm); diff --git a/gdb/guile/scm-arch.c b/gdb/guile/scm-arch.c index 953cb226d98..ce9d9f193d5 100644 --- a/gdb/guile/scm-arch.c +++ b/gdb/guile/scm-arch.c @@ -26,10 +26,9 @@ #include "arch-utils.h" #include "guile-internal.h" -/* The smob. - The typedef for this struct is in guile-internal.h. */ +/* The smob. */ -struct _arch_smob +struct arch_smob { /* This always appears first. */ gdb_smob base; diff --git a/gdb/guile/scm-block.c b/gdb/guile/scm-block.c index 813c6c1022c..1a898fa65ea 100644 --- a/gdb/guile/scm-block.c +++ b/gdb/guile/scm-block.c @@ -30,7 +30,7 @@ /* A smob describing a gdb block. */ -typedef struct _block_smob +struct block_smob { /* This always appears first. We want blocks to be eq?-able. And we need to be able to invalidate @@ -44,7 +44,7 @@ typedef struct _block_smob between a block and an object file. When a block is created also store a pointer to the object file for later use. */ struct objfile *objfile; -} block_smob; +}; /* To iterate over block symbols from Scheme we need to store struct block_iterator somewhere. This is stored in the "progress" field @@ -54,7 +54,7 @@ typedef struct _block_smob Remember: While iterating over block symbols, you must continually check whether the block is still valid. */ -typedef struct +struct block_syms_progress_smob { /* This always appears first. */ gdb_smob base; @@ -64,7 +64,7 @@ typedef struct /* Has the iterator been initialized flag. */ int initialized_p; -} block_syms_progress_smob; +}; static const char block_smob_name[] = "gdb:block"; static const char block_syms_progress_smob_name[] = "gdb:block-symbols-iterator"; diff --git a/gdb/guile/scm-cmd.c b/gdb/guile/scm-cmd.c index f4db4114403..bf079a27511 100644 --- a/gdb/guile/scm-cmd.c +++ b/gdb/guile/scm-cmd.c @@ -37,7 +37,7 @@ any side-effects. This means that the smob needs to store everything that was passed to make-command. */ -typedef struct _command_smob +struct command_smob { /* This always appears first. */ gdb_smob base; @@ -85,7 +85,7 @@ typedef struct _command_smob the object since a reference to it comes from non-gc-managed space (the command context pointer). */ SCM containing_scm; -} command_smob; +}; static const char command_smob_name[] = "gdb:command"; diff --git a/gdb/guile/scm-exception.c b/gdb/guile/scm-exception.c index 96ed60a7e2b..a6c6a5ece90 100644 --- a/gdb/guile/scm-exception.c +++ b/gdb/guile/scm-exception.c @@ -37,7 +37,7 @@ One important invariant is that smobs are never a valid result of a function, other than to signify an exception occurred. */ -typedef struct +struct exception_smob { /* This always appears first. */ gdb_smob base; @@ -45,7 +45,7 @@ typedef struct /* The key and args parameters to "throw". */ SCM key; SCM args; -} exception_smob; +}; static const char exception_smob_name[] = "gdb:exception"; diff --git a/gdb/guile/scm-frame.c b/gdb/guile/scm-frame.c index 211c6638232..f09968937db 100644 --- a/gdb/guile/scm-frame.c +++ b/gdb/guile/scm-frame.c @@ -32,10 +32,9 @@ #include "value.h" #include "guile-internal.h" -/* The smob. - The typedef for this struct is in guile-internal.h. */ +/* The smob. */ -struct _frame_smob +struct frame_smob { /* This always appears first. */ eqable_gdb_smob base; diff --git a/gdb/guile/scm-iterator.c b/gdb/guile/scm-iterator.c index 36ab5c01d3d..71f5eea874c 100644 --- a/gdb/guile/scm-iterator.c +++ b/gdb/guile/scm-iterator.c @@ -55,10 +55,9 @@ /* A smob for iterating over something. Typically this is used when computing a list of everything is - too expensive. - The typedef for this struct is in guile-internal.h. */ + too expensive. */ -struct _iterator_smob +struct iterator_smob { /* This always appears first. */ gdb_smob base; diff --git a/gdb/guile/scm-lazy-string.c b/gdb/guile/scm-lazy-string.c index 0df1b3a0f81..978f695d8f1 100644 --- a/gdb/guile/scm-lazy-string.c +++ b/gdb/guile/scm-lazy-string.c @@ -29,7 +29,7 @@ /* The smob. */ -typedef struct +struct lazy_string_smob { /* This always appears first. */ gdb_smob base; @@ -58,7 +58,7 @@ typedef struct This is recorded as an SCM object so that we take advantage of support for preserving the type should its owning objfile go away. */ SCM type; -} lazy_string_smob; +}; static const char lazy_string_smob_name[] = "gdb:lazy-string"; diff --git a/gdb/guile/scm-objfile.c b/gdb/guile/scm-objfile.c index b1ff402fa1e..77b1cd33f5e 100644 --- a/gdb/guile/scm-objfile.c +++ b/gdb/guile/scm-objfile.c @@ -25,10 +25,9 @@ #include "language.h" #include "guile-internal.h" -/* The smob. - The typedef for this struct is in guile-internal.h. */ +/* The smob. */ -struct _objfile_smob +struct objfile_smob { /* This always appears first. */ gdb_smob base; diff --git a/gdb/guile/scm-param.c b/gdb/guile/scm-param.c index 62e21087403..19ca45e390c 100644 --- a/gdb/guile/scm-param.c +++ b/gdb/guile/scm-param.c @@ -62,7 +62,7 @@ union pascm_variable N.B. There is no free function for this smob. All objects pointed to by this smob must live in GC space. */ -typedef struct _param_smob +struct param_smob { /* This always appears first. */ gdb_smob base; @@ -112,7 +112,7 @@ typedef struct _param_smob protect/unprotect the object since a reference to it comes from non-gc-managed space (the command context pointer). */ SCM containing_scm; -} param_smob; +}; static const char param_smob_name[] = "gdb:parameter"; diff --git a/gdb/guile/scm-ports.c b/gdb/guile/scm-ports.c index 66efdf4465b..f071c2f573c 100644 --- a/gdb/guile/scm-ports.c +++ b/gdb/guile/scm-ports.c @@ -59,7 +59,7 @@ private: /* Data for a memory port. */ -typedef struct +struct ioscm_memory_port { /* Bounds of memory range this port is allowed to access: [start, end). This means that 0xff..ff is not accessible. I can live with that. */ @@ -80,7 +80,7 @@ typedef struct the user to specify these values to help get something similar. */ unsigned read_buf_size, write_buf_size; #endif -} ioscm_memory_port; +}; /* Copies of the original system input/output/error ports. These are recorded for debugging purposes. */ diff --git a/gdb/guile/scm-pretty-print.c b/gdb/guile/scm-pretty-print.c index df09dae434e..0bbcc4de579 100644 --- a/gdb/guile/scm-pretty-print.c +++ b/gdb/guile/scm-pretty-print.c @@ -59,7 +59,7 @@ enum display_hint /* The smob. */ -typedef struct +struct pretty_printer_smob { /* This must appear first. */ gdb_smob base; @@ -77,11 +77,11 @@ typedef struct SCM lookup; /* Note: Attaching subprinters to this smob is left to Scheme. */ -} pretty_printer_smob; +}; /* The smob. */ -typedef struct +struct pretty_printer_worker_smob { /* This must appear first. */ gdb_smob base; @@ -99,7 +99,7 @@ typedef struct The iterator returns a pair for each iteration: (name . value), where "value" can have the same types as to_string. */ SCM children; -} pretty_printer_worker_smob; +}; static const char pretty_printer_smob_name[] = "gdb:pretty-printer"; diff --git a/gdb/guile/scm-progspace.c b/gdb/guile/scm-progspace.c index 49c3e36227f..9f93a9843a3 100644 --- a/gdb/guile/scm-progspace.c +++ b/gdb/guile/scm-progspace.c @@ -28,10 +28,9 @@ /* NOTE: Python exports the name "Progspace", so we export "progspace". Internally we shorten that to "pspace". */ -/* The smob. - The typedef for this struct is in guile-internal.h. */ +/* The smob. */ -struct _pspace_smob +struct pspace_smob { /* This always appears first. */ gdb_smob base; diff --git a/gdb/guile/scm-symbol.c b/gdb/guile/scm-symbol.c index 8bad7e6c5a0..9810ec95c30 100644 --- a/gdb/guile/scm-symbol.c +++ b/gdb/guile/scm-symbol.c @@ -30,14 +30,14 @@ /* The smob. */ -typedef struct +struct symbol_smob { /* This always appears first. */ eqable_gdb_smob base; /* The GDB symbol structure this smob is wrapping. */ struct symbol *symbol; -} symbol_smob; +}; static const char symbol_smob_name[] = "gdb:symbol"; diff --git a/gdb/guile/scm-symtab.c b/gdb/guile/scm-symtab.c index 0efd0aafac1..eb83a161a3f 100644 --- a/gdb/guile/scm-symtab.c +++ b/gdb/guile/scm-symtab.c @@ -29,7 +29,7 @@ /* A smob. */ -typedef struct +struct symtab_smob { /* This always appears first. eqable_gdb_smob is used so that symtabs are eq?-able. @@ -42,7 +42,7 @@ typedef struct If this is NULL the symtab is invalid. This can happen when the underlying objfile is freed. */ struct symtab *symtab; -} symtab_smob; +}; /* A smob. A smob describing a gdb symtab-and-line object. @@ -50,7 +50,7 @@ typedef struct the validity of symtab_scm. TODO: Sals are not eq?-able at the moment, or even comparable. */ -typedef struct +struct sal_smob { /* This always appears first. */ gdb_smob base; @@ -67,7 +67,7 @@ typedef struct this pointer will not be updated. Use symtab_scm instead to determine if this sal is valid. */ struct symtab_and_line sal; -} sal_smob; +}; static const char symtab_smob_name[] = "gdb:symtab"; /* "symtab-and-line" is pretty long, and "sal" is short and unique. */ diff --git a/gdb/guile/scm-type.c b/gdb/guile/scm-type.c index 8fc9629eb0d..a2640f23bcb 100644 --- a/gdb/guile/scm-type.c +++ b/gdb/guile/scm-type.c @@ -34,10 +34,9 @@ /* The smob. The type is chained with all types associated with its objfile, if any. This lets us copy the underlying struct type when the objfile is - deleted. - The typedef for this struct is in guile-internal.h. */ + deleted. */ -struct _type_smob +struct type_smob { /* This always appears first. eqable_gdb_smob is used so that types are eq?-able. @@ -52,7 +51,7 @@ struct _type_smob /* A field smob. */ -typedef struct +struct field_smob { /* This always appears first. */ gdb_smob base; @@ -62,7 +61,7 @@ typedef struct /* The field number in TYPE_SCM. */ int field_num; -} field_smob; +}; static const char type_smob_name[] = "gdb:type"; static const char field_smob_name[] = "gdb:field"; diff --git a/gdb/guile/scm-value.c b/gdb/guile/scm-value.c index 5ba1f2cb003..e1b0020c98a 100644 --- a/gdb/guile/scm-value.c +++ b/gdb/guile/scm-value.c @@ -34,7 +34,7 @@ /* The smob. */ -typedef struct _value_smob +struct value_smob { /* This always appears first. */ gdb_smob base; @@ -42,8 +42,8 @@ typedef struct _value_smob /* Doubly linked list of values in values_in_scheme. IWBN to use a chained_gdb_smob instead, which is doable, it just requires a bit more casting than normal. */ - struct _value_smob *next; - struct _value_smob *prev; + value_smob *next; + value_smob *prev; struct value *value; @@ -55,7 +55,7 @@ typedef struct _value_smob SCM address; SCM type; SCM dynamic_type; -} value_smob; +}; static const char value_smob_name[] = "gdb:value"; diff --git a/gdb/linespec.c b/gdb/linespec.c index 74560953d71..3bf16c504a2 100644 --- a/gdb/linespec.c +++ b/gdb/linespec.c @@ -260,7 +260,7 @@ const char * const linespec_keywords[] = { "if", "thread", "task", "-force-condi /* A token of the linespec lexer */ -struct ls_token +struct linespec_token { /* The type of the token */ linespec_token_type type; @@ -275,7 +275,6 @@ struct ls_token const char *keyword; } data; }; -typedef struct ls_token linespec_token; #define LS_TOKEN_STOKEN(TOK) (TOK).data.string #define LS_TOKEN_KEYWORD(TOK) (TOK).data.keyword diff --git a/gdb/python/py-arch.c b/gdb/python/py-arch.c index ec955e79654..ac64335ae74 100644 --- a/gdb/python/py-arch.c +++ b/gdb/python/py-arch.c @@ -23,10 +23,10 @@ #include "disasm.h" #include "python-internal.h" -typedef struct arch_object_type_object { +struct arch_object { PyObject_HEAD struct gdbarch *gdbarch; -} arch_object; +}; static struct gdbarch_data *arch_object_data = NULL; diff --git a/gdb/python/py-block.c b/gdb/python/py-block.c index 26d59e102a3..aadc1e7702b 100644 --- a/gdb/python/py-block.c +++ b/gdb/python/py-block.c @@ -24,7 +24,7 @@ #include "python-internal.h" #include "objfiles.h" -typedef struct blpy_block_object { +struct block_object { PyObject_HEAD /* The GDB block structure that represents a frame's code block. */ const struct block *block; @@ -34,11 +34,11 @@ typedef struct blpy_block_object { struct objfile *objfile; /* Keep track of all blocks with a doubly-linked list. Needed for block invalidation if the source object file has been freed. */ - struct blpy_block_object *prev; - struct blpy_block_object *next; -} block_object; + block_object *prev; + block_object *next; +}; -typedef struct { +struct block_syms_iterator_object { PyObject_HEAD /* The block. */ const struct block *block; @@ -49,8 +49,8 @@ typedef struct { /* Pointer back to the original source block object. Needed to check if the block is still valid, and has not been invalidated when an object file has been freed. */ - struct blpy_block_object *source; -} block_syms_iterator_object; + block_object *source; +}; /* Require a valid block. All access to block_object->block should be gated by this call. */ @@ -293,7 +293,7 @@ set_block (block_object *obj, const struct block *block, if (objfile) { obj->objfile = objfile; - obj->next = ((struct blpy_block_object *) + obj->next = ((block_object *) objfile_data (objfile, blpy_objfile_data_key)); if (obj->next) obj->next->prev = obj; diff --git a/gdb/python/py-cmd.c b/gdb/python/py-cmd.c index 760208f52b9..b3e8daf9321 100644 --- a/gdb/python/py-cmd.c +++ b/gdb/python/py-cmd.c @@ -66,8 +66,6 @@ struct cmdpy_object struct cmd_list_element *sub_list; }; -typedef struct cmdpy_object cmdpy_object; - extern PyTypeObject cmdpy_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("cmdpy_object"); diff --git a/gdb/python/py-event.h b/gdb/python/py-event.h index 92a71f675af..5832a568efc 100644 --- a/gdb/python/py-event.h +++ b/gdb/python/py-event.h @@ -32,12 +32,12 @@ #include "py-event-types.def" #undef GDB_PY_DEFINE_EVENT_TYPE -typedef struct +struct event_object { PyObject_HEAD PyObject *dict; -} event_object; +}; extern int emit_continue_event (ptid_t ptid); extern int emit_exited_event (const LONGEST *exit_code, struct inferior *inf); diff --git a/gdb/python/py-events.h b/gdb/python/py-events.h index 51416764931..1cd0d9ba253 100644 --- a/gdb/python/py-events.h +++ b/gdb/python/py-events.h @@ -27,17 +27,17 @@ /* Stores a list of objects to be notified when the event for which this registry tracks occurs. */ -typedef struct +struct eventregistry_object { PyObject_HEAD PyObject *callbacks; -} eventregistry_object; +}; /* Struct holding references to event registries both in python and c. This is meant to be a singleton. */ -typedef struct +struct events_object { #define GDB_PY_DEFINE_EVENT(name) \ eventregistry_object *name; @@ -46,7 +46,7 @@ typedef struct PyObject *module; -} events_object; +}; /* Python events singleton. */ extern events_object gdb_py_events; diff --git a/gdb/python/py-frame.c b/gdb/python/py-frame.c index 6f0bb8e5a4c..6b2b29d7864 100644 --- a/gdb/python/py-frame.c +++ b/gdb/python/py-frame.c @@ -28,7 +28,7 @@ #include "symfile.h" #include "objfiles.h" -typedef struct { +struct frame_object { PyObject_HEAD struct frame_id frame_id; struct gdbarch *gdbarch; @@ -42,7 +42,7 @@ typedef struct { ID as the previous frame). Whenever get_prev_frame returns NULL, we record the frame_id of the next frame and set FRAME_ID_IS_NEXT to 1. */ int frame_id_is_next; -} frame_object; +}; /* Require a valid frame. This must be called inside a TRY_CATCH, or another context in which a gdb exception is allowed. */ diff --git a/gdb/python/py-inferior.c b/gdb/python/py-inferior.c index 102a4270af3..89a822192c8 100644 --- a/gdb/python/py-inferior.c +++ b/gdb/python/py-inferior.c @@ -61,14 +61,14 @@ extern PyTypeObject inferior_object_type static const struct inferior_data *infpy_inf_data_key; -typedef struct { +struct membuf_object { PyObject_HEAD void *buffer; /* These are kept just for mbpy_str. */ CORE_ADDR addr; CORE_ADDR length; -} membuf_object; +}; extern PyTypeObject membuf_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("membuf_object"); diff --git a/gdb/python/py-instruction.c b/gdb/python/py-instruction.c index fda44da2843..374fb90ca47 100644 --- a/gdb/python/py-instruction.c +++ b/gdb/python/py-instruction.c @@ -28,9 +28,9 @@ PyTypeObject py_insn_type = { /* Python instruction object. */ -typedef struct { +struct py_insn_obj { PyObject_HEAD -} py_insn_obj; +}; /* Getter function for gdb.Instruction attributes. */ diff --git a/gdb/python/py-lazy-string.c b/gdb/python/py-lazy-string.c index aaee94f5e1f..070923cddeb 100644 --- a/gdb/python/py-lazy-string.c +++ b/gdb/python/py-lazy-string.c @@ -24,7 +24,7 @@ #include "valprint.h" #include "language.h" -typedef struct { +struct lazy_string_object { PyObject_HEAD /* Holds the address of the lazy string. */ @@ -51,7 +51,7 @@ typedef struct { This is recorded as a PyObject so that we take advantage of support for preserving the type should its owning objfile go away. */ PyObject *type; -} lazy_string_object; +}; extern PyTypeObject lazy_string_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("lazy_string_object"); diff --git a/gdb/python/py-linetable.c b/gdb/python/py-linetable.c index 49e98c0d898..e384d954d8d 100644 --- a/gdb/python/py-linetable.c +++ b/gdb/python/py-linetable.c @@ -20,29 +20,29 @@ #include "defs.h" #include "python-internal.h" -typedef struct { +struct linetable_entry_object { PyObject_HEAD /* The line table source line. */ int line; /* The pc associated with the source line. */ CORE_ADDR pc; -} linetable_entry_object; +}; extern PyTypeObject linetable_entry_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("linetable_entry_object"); -typedef struct { +struct linetable_object { PyObject_HEAD /* The symtab python object. We store the Python object here as the underlying symtab can become invalid, and we have to run validity checks on it. */ PyObject *symtab; -} linetable_object; +}; extern PyTypeObject linetable_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("linetable_object"); -typedef struct { +struct ltpy_iterator_object { PyObject_HEAD /* The current entry in the line table for the iterator */ int current_index; @@ -50,7 +50,7 @@ typedef struct { check if the line table is still valid, and has not been invalidated when an object file has been freed. */ PyObject *source; -} ltpy_iterator_object; +}; extern PyTypeObject ltpy_iterator_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("ltpy_iterator_object"); diff --git a/gdb/python/py-objfile.c b/gdb/python/py-objfile.c index a006eb38830..e88c77eb03a 100644 --- a/gdb/python/py-objfile.c +++ b/gdb/python/py-objfile.c @@ -25,7 +25,7 @@ #include "build-id.h" #include "symtab.h" -typedef struct +struct objfile_object { PyObject_HEAD @@ -50,7 +50,7 @@ typedef struct /* The debug method matcher list. */ PyObject *xmethods; -} objfile_object; +}; extern PyTypeObject objfile_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("objfile_object"); diff --git a/gdb/python/py-param.c b/gdb/python/py-param.c index fb39187b184..df45e563b4d 100644 --- a/gdb/python/py-param.c +++ b/gdb/python/py-param.c @@ -91,8 +91,6 @@ struct parmpy_object const char **enumeration; }; -typedef struct parmpy_object parmpy_object; - extern PyTypeObject parmpy_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("parmpy_object"); diff --git a/gdb/python/py-progspace.c b/gdb/python/py-progspace.c index 34baa875027..ac8f6d57727 100644 --- a/gdb/python/py-progspace.c +++ b/gdb/python/py-progspace.c @@ -27,7 +27,7 @@ #include "solib.h" #include "block.h" -typedef struct +struct pspace_object { PyObject_HEAD @@ -52,7 +52,7 @@ typedef struct /* The debug method list. */ PyObject *xmethods; -} pspace_object; +}; extern PyTypeObject pspace_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("pspace_object"); diff --git a/gdb/python/py-record-btrace.c b/gdb/python/py-record-btrace.c index 15cd15bb0dc..93c3f7c9312 100644 --- a/gdb/python/py-record-btrace.c +++ b/gdb/python/py-record-btrace.c @@ -40,7 +40,7 @@ /* Python object for btrace record lists. */ -typedef struct { +struct btpy_list_object { PyObject_HEAD /* The thread this list belongs to. */ @@ -57,7 +57,7 @@ typedef struct { /* Either &BTPY_CALL_TYPE or &RECPY_INSN_TYPE. */ PyTypeObject* element_type; -} btpy_list_object; +}; /* Python type for btrace lists. */ diff --git a/gdb/python/py-record.c b/gdb/python/py-record.c index 38634081224..3ea7833eb35 100644 --- a/gdb/python/py-record.c +++ b/gdb/python/py-record.c @@ -50,7 +50,7 @@ PyTypeObject recpy_gap_type = { }; /* Python RecordGap object. */ -typedef struct +struct recpy_gap_object { PyObject_HEAD @@ -62,7 +62,7 @@ typedef struct /* Element number. */ Py_ssize_t number; -} recpy_gap_object; +}; /* Implementation of record.method. */ diff --git a/gdb/python/py-record.h b/gdb/python/py-record.h index 5d361fe3998..b771f321ce2 100644 --- a/gdb/python/py-record.h +++ b/gdb/python/py-record.h @@ -25,7 +25,7 @@ #include "record.h" /* Python Record object. */ -typedef struct +struct recpy_record_object { PyObject_HEAD @@ -34,12 +34,12 @@ typedef struct /* The current recording method. */ enum record_method method; -} recpy_record_object; +}; /* Python recorded element object. This is generic enough to represent recorded instructions as well as recorded function call segments, hence the generic name. */ -typedef struct +struct recpy_element_object { PyObject_HEAD @@ -51,7 +51,7 @@ typedef struct /* Element number. */ Py_ssize_t number; -} recpy_element_object; +}; /* Python RecordInstruction type. */ extern PyTypeObject recpy_insn_type; diff --git a/gdb/python/py-registers.c b/gdb/python/py-registers.c index d7b876bae28..7e9dc1d8cd7 100644 --- a/gdb/python/py-registers.c +++ b/gdb/python/py-registers.c @@ -30,7 +30,7 @@ static struct gdbarch_data *gdbpy_register_object_data = NULL; /* Structure for iterator over register descriptors. */ -typedef struct { +struct register_descriptor_iterator_object { PyObject_HEAD /* The register group that the user is iterating over. This will never @@ -42,13 +42,13 @@ typedef struct { /* Pointer back to the architecture we're finding registers for. */ struct gdbarch *gdbarch; -} register_descriptor_iterator_object; +}; extern PyTypeObject register_descriptor_iterator_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("register_descriptor_iterator_object"); /* A register descriptor. */ -typedef struct { +struct register_descriptor_object { PyObject_HEAD /* The register this is a descriptor for. */ @@ -56,13 +56,13 @@ typedef struct { /* The architecture this is a register for. */ struct gdbarch *gdbarch; -} register_descriptor_object; +}; extern PyTypeObject register_descriptor_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("register_descriptor_object"); /* Structure for iterator over register groups. */ -typedef struct { +struct reggroup_iterator_object { PyObject_HEAD /* The last register group returned. Initially this will be NULL. */ @@ -70,18 +70,18 @@ typedef struct { /* Pointer back to the architecture we're finding registers for. */ struct gdbarch *gdbarch; -} reggroup_iterator_object; +}; extern PyTypeObject reggroup_iterator_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("reggroup_iterator_object"); /* A register group object. */ -typedef struct { +struct reggroup_object { PyObject_HEAD /* The register group being described. */ struct reggroup *reggroup; -} reggroup_object; +}; extern PyTypeObject reggroup_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("reggroup_object"); diff --git a/gdb/python/py-symbol.c b/gdb/python/py-symbol.c index 0adcb0bc9ad..edcb51fcc12 100644 --- a/gdb/python/py-symbol.c +++ b/gdb/python/py-symbol.c @@ -25,7 +25,7 @@ #include "objfiles.h" #include "symfile.h" -typedef struct sympy_symbol_object { +struct symbol_object { PyObject_HEAD /* The GDB symbol structure this object is wrapping. */ struct symbol *symbol; @@ -33,9 +33,9 @@ typedef struct sympy_symbol_object { doubly-linked list, rooted in the objfile. This lets us invalidate the underlying struct symbol when the objfile is deleted. */ - struct sympy_symbol_object *prev; - struct sympy_symbol_object *next; -} symbol_object; + symbol_object *prev; + symbol_object *next; +}; /* Require a valid symbol. All access to symbol_object->symbol should be gated by this call. */ @@ -307,7 +307,7 @@ set_symbol (symbol_object *obj, struct symbol *symbol) { struct objfile *objfile = symbol_objfile (symbol); - obj->next = ((struct sympy_symbol_object *) + obj->next = ((symbol_object *) objfile_data (objfile, sympy_objfile_data_key)); if (obj->next) obj->next->prev = obj; diff --git a/gdb/python/py-symtab.c b/gdb/python/py-symtab.c index 579662f92d2..33cb67cb9e2 100644 --- a/gdb/python/py-symtab.c +++ b/gdb/python/py-symtab.c @@ -25,7 +25,7 @@ #include "objfiles.h" #include "block.h" -typedef struct stpy_symtab_object { +struct symtab_object { PyObject_HEAD /* The GDB Symbol table structure. */ struct symtab *symtab; @@ -33,9 +33,9 @@ typedef struct stpy_symtab_object { a doubly-linked list, rooted in the objfile. This allows invalidation of the underlying struct symtab when the objfile is deleted. */ - struct stpy_symtab_object *prev; - struct stpy_symtab_object *next; -} symtab_object; + symtab_object *prev; + symtab_object *next; +}; extern PyTypeObject symtab_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("symtab_object"); @@ -54,7 +54,7 @@ static const struct objfile_data *stpy_objfile_data_key; } \ } while (0) -typedef struct salpy_sal_object { +struct sal_object { PyObject_HEAD /* The GDB Symbol table structure. */ PyObject *symtab; @@ -64,9 +64,9 @@ typedef struct salpy_sal_object { track with a doubly-linked list, rooted in the objfile. This allows invalidation of the underlying struct symtab_and_line when the objfile is deleted. */ - struct salpy_sal_object *prev; - struct salpy_sal_object *next; -} sal_object; + sal_object *prev; + sal_object *next; +}; extern PyTypeObject sal_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("sal_object"); @@ -378,8 +378,8 @@ set_sal (sal_object *sal_obj, struct symtab_and_line sal) symtab *symtab = symtab_object_to_symtab (sal_obj->symtab); sal_obj->next - = ((struct salpy_sal_object *) objfile_data (SYMTAB_OBJFILE (symtab), - salpy_objfile_data_key)); + = ((sal_object *) objfile_data (SYMTAB_OBJFILE (symtab), + salpy_objfile_data_key)); if (sal_obj->next) sal_obj->next->prev = sal_obj; @@ -405,7 +405,7 @@ set_symtab (symtab_object *obj, struct symtab *symtab) if (symtab) { obj->next - = ((struct stpy_symtab_object *) + = ((symtab_object *) objfile_data (SYMTAB_OBJFILE (symtab), stpy_objfile_data_key)); if (obj->next) obj->next->prev = obj; diff --git a/gdb/python/py-type.c b/gdb/python/py-type.c index 55d8264fea9..1c7cacbddf3 100644 --- a/gdb/python/py-type.c +++ b/gdb/python/py-type.c @@ -28,7 +28,7 @@ #include "language.h" #include "typeprint.h" -typedef struct pyty_type_object +struct type_object { PyObject_HEAD struct type *type; @@ -36,35 +36,35 @@ typedef struct pyty_type_object /* If a Type object is associated with an objfile, it is kept on a doubly-linked list, rooted in the objfile. This lets us copy the underlying struct type when the objfile is deleted. */ - struct pyty_type_object *prev; - struct pyty_type_object *next; -} type_object; + struct type_object *prev; + struct type_object *next; +}; extern PyTypeObject type_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("type_object"); /* A Field object. */ -typedef struct pyty_field_object +struct field_object { PyObject_HEAD /* Dictionary holding our attributes. */ PyObject *dict; -} field_object; +}; extern PyTypeObject field_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("field_object"); /* A type iterator object. */ -typedef struct { +struct typy_iterator_object { PyObject_HEAD /* The current field index. */ int field; /* What to return. */ enum gdbpy_iter_kind kind; /* Pointer back to the original source type object. */ - struct pyty_type_object *source; -} typy_iterator_object; + type_object *source; +}; extern PyTypeObject type_iterator_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("typy_iterator_object"); @@ -1101,7 +1101,7 @@ set_type (type_object *obj, struct type *type) { struct objfile *objfile = TYPE_OBJFILE (type); - obj->next = ((struct pyty_type_object *) + obj->next = ((type_object *) objfile_data (objfile, typy_objfile_data_key)); if (obj->next) obj->next->prev = obj; diff --git a/gdb/python/py-unwind.c b/gdb/python/py-unwind.c index 4571ef685c7..c01e6b1aa1d 100644 --- a/gdb/python/py-unwind.c +++ b/gdb/python/py-unwind.c @@ -31,7 +31,7 @@ #define TRACE_PY_UNWIND(level, args...) if (pyuw_debug >= level) \ { fprintf_unfiltered (gdb_stdlog, args); } -typedef struct +struct pending_frame_object { PyObject_HEAD @@ -40,7 +40,7 @@ typedef struct /* Its architecture, passed by the sniffer caller. */ struct gdbarch *gdbarch; -} pending_frame_object; +}; /* Saved registers array item. */ @@ -59,7 +59,7 @@ struct saved_reg /* The data we keep for the PyUnwindInfo: pending_frame, saved registers and frame ID. */ -typedef struct +struct unwind_info_object { PyObject_HEAD @@ -71,12 +71,12 @@ typedef struct /* Saved registers array. */ std::vector *saved_regs; -} unwind_info_object; +}; /* The data we keep for a frame we can unwind: frame ID and an array of (register_number, register_value) pairs. */ -typedef struct +struct cached_frame_info { /* Frame ID. */ struct frame_id frame_id; @@ -88,7 +88,7 @@ typedef struct int reg_count; cached_reg_t reg[]; -} cached_frame_info; +}; extern PyTypeObject pending_frame_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("pending_frame_object"); diff --git a/gdb/python/py-value.c b/gdb/python/py-value.c index 4e8d93e15ab..c1ff8e8eca9 100644 --- a/gdb/python/py-value.c +++ b/gdb/python/py-value.c @@ -53,7 +53,7 @@ #define builtin_type_pychar \ language_string_char_type (python_language, python_gdbarch) -typedef struct value_object { +struct value_object { PyObject_HEAD struct value_object *next; struct value_object *prev; @@ -61,7 +61,7 @@ typedef struct value_object { PyObject *address; PyObject *type; PyObject *dynamic_type; -} value_object; +}; /* List of all values which are currently exposed to Python. It is maintained so that when an objfile is discarded, preserve_values diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h index cc113cb7bfa..3fdfedefbea 100644 --- a/gdb/python/python-internal.h +++ b/gdb/python/python-internal.h @@ -318,7 +318,7 @@ extern PyTypeObject frame_object_type extern PyTypeObject thread_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("thread_object"); -typedef struct gdbpy_breakpoint_object +struct gdbpy_breakpoint_object { PyObject_HEAD @@ -331,7 +331,7 @@ typedef struct gdbpy_breakpoint_object /* 1 is this is a FinishBreakpoint object, 0 otherwise. */ int is_finish_bp; -} gdbpy_breakpoint_object; +}; /* Require that BREAKPOINT be a valid breakpoint ID; throw a Python exception if it is invalid. */ @@ -361,7 +361,7 @@ typedef struct gdbpy_breakpoint_object extern gdbpy_breakpoint_object *bppy_pending_object; -typedef struct +struct thread_object { PyObject_HEAD @@ -370,7 +370,7 @@ typedef struct /* The Inferior object to which this thread belongs. */ PyObject *inf_obj; -} thread_object; +}; struct inferior_object;