Remove redundant typedefs
authorTom Tromey <tromey@adacore.com>
Fri, 4 Dec 2020 20:09:43 +0000 (13:09 -0700)
committerTom Tromey <tromey@adacore.com>
Fri, 4 Dec 2020 20:12:56 +0000 (13:12 -0700)
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  <tromey@adacore.com>

* 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.

42 files changed:
gdb/ChangeLog
gdb/guile/guile-internal.h
gdb/guile/scm-arch.c
gdb/guile/scm-block.c
gdb/guile/scm-cmd.c
gdb/guile/scm-exception.c
gdb/guile/scm-frame.c
gdb/guile/scm-iterator.c
gdb/guile/scm-lazy-string.c
gdb/guile/scm-objfile.c
gdb/guile/scm-param.c
gdb/guile/scm-ports.c
gdb/guile/scm-pretty-print.c
gdb/guile/scm-progspace.c
gdb/guile/scm-symbol.c
gdb/guile/scm-symtab.c
gdb/guile/scm-type.c
gdb/guile/scm-value.c
gdb/linespec.c
gdb/python/py-arch.c
gdb/python/py-block.c
gdb/python/py-cmd.c
gdb/python/py-event.h
gdb/python/py-events.h
gdb/python/py-frame.c
gdb/python/py-inferior.c
gdb/python/py-instruction.c
gdb/python/py-lazy-string.c
gdb/python/py-linetable.c
gdb/python/py-objfile.c
gdb/python/py-param.c
gdb/python/py-progspace.c
gdb/python/py-record-btrace.c
gdb/python/py-record.c
gdb/python/py-record.h
gdb/python/py-registers.c
gdb/python/py-symbol.c
gdb/python/py-symtab.c
gdb/python/py-type.c
gdb/python/py-unwind.c
gdb/python/py-value.c
gdb/python/python-internal.h

index 921b694c627207f3cafb2e6698024bd5b946f77a..eae761b7f129965e59be39a2825a0bee94f78d45 100644 (file)
@@ -1,3 +1,77 @@
+2020-12-04  Tom Tromey  <tromey@adacore.com>
+
+       * 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  <tromey@adacore.com>
 
        * value.c (value_internal_function_name): Make return type const.
index bb2bc1191879baee72129f4606a4f1ea283980dc..4dd7023fbf9dc52baf8a595d03f476a96e049010 100644 (file)
@@ -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);
 
index 953cb226d98f146ac21640dfa76355557e68a447..ce9d9f193d55fd0cecb3ee136c605e16641c0527 100644 (file)
 #include "arch-utils.h"
 #include "guile-internal.h"
 
-/* The <gdb:arch> smob.
-   The typedef for this struct is in guile-internal.h.  */
+/* The <gdb:arch> smob.  */
 
-struct _arch_smob
+struct arch_smob
 {
   /* This always appears first.  */
   gdb_smob base;
index 813c6c1022cccf1194b6fb0f7453193e868e76da..1a898fa65eaf4b9ea4c24ea96ca723ff94f3bda5 100644 (file)
@@ -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";
index f4db41144035dc4feb11a9f5358d9f60d12939bb..bf079a27511bec01bdb66bacabb1f224c36545d6 100644 (file)
@@ -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";
 
index 96ed60a7e2b71c28b96583088b5d8c636a85a887..a6c6a5ece90491828d7d0b1f53009367270a721a 100644 (file)
@@ -37,7 +37,7 @@
    One important invariant is that <gdb:exception> 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";
 
index 211c663823249f4d27af52538391dee88428f1ab..f09968937db47161774cf206892b6ea378f0412c 100644 (file)
 #include "value.h"
 #include "guile-internal.h"
 
-/* The <gdb:frame> smob.
-   The typedef for this struct is in guile-internal.h.  */
+/* The <gdb:frame> smob.  */
 
-struct _frame_smob
+struct frame_smob
 {
   /* This always appears first.  */
   eqable_gdb_smob base;
index 36ab5c01d3d5a5307ff8ce8c4cef236aa2fae108..71f5eea874cda92d4450fe7910f6935bc8c9aadc 100644 (file)
 
 /* 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;
index 0df1b3a0f81d1916f7f40c54fd5c6a745d0ccd41..978f695d8f10bd4f509b07187fb49070c05310b1 100644 (file)
@@ -29,7 +29,7 @@
 
 /* The <gdb:lazy-string> 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";
 
index b1ff402fa1ea2d00fc6ad4155a1a6c73e619b028..77b1cd33f5e2de5fac049d3be17a6f223a083b9f 100644 (file)
 #include "language.h"
 #include "guile-internal.h"
 
-/* The <gdb:objfile> smob.
-   The typedef for this struct is in guile-internal.h.  */
+/* The <gdb:objfile> smob.  */
 
-struct _objfile_smob
+struct objfile_smob
 {
   /* This always appears first.  */
   gdb_smob base;
index 62e21087403c1ca4f4ebe6f8edf2756fb0d4c5ab..19ca45e390c199ab793dd47989e9da70da857cd8 100644 (file)
@@ -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";
 
index 66efdf4465bd7b07d6a053832a9dbe6192ff5e8b..f071c2f573c82d85e36fc839a51a8b02b3a5ad4f 100644 (file)
@@ -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.  */
index df09dae434e0c0f97604d01ae5017f6e14d70e26..0bbcc4de57981e48ddfc62df7dbea547bb83f321 100644 (file)
@@ -59,7 +59,7 @@ enum display_hint
 
 /* The <gdb:pretty-printer> 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 <gdb:pretty-printer-worker> 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";
index 49c3e36227fb73d04ab00294881f20269c6f5e44..9f93a9843a34f0a86e8bbb6d7c28db680a33cac4 100644 (file)
 /* NOTE: Python exports the name "Progspace", so we export "progspace".
    Internally we shorten that to "pspace".  */
 
-/* The <gdb:progspace> smob.
-   The typedef for this struct is in guile-internal.h.  */
+/* The <gdb:progspace> smob.  */
 
-struct _pspace_smob
+struct pspace_smob
 {
   /* This always appears first.  */
   gdb_smob base;
index 8bad7e6c5a093ed83be8ccb08fde292e57caf1bc..9810ec95c30294513478f188cd3a514e8e9115e5 100644 (file)
 
 /* The <gdb:symbol> 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";
 
index 0efd0aafac14c7913b60b92f90a9f5416071127b..eb83a161a3f3ec234f09e7428e03b6b32fb7b984 100644 (file)
@@ -29,7 +29,7 @@
 
 /* A <gdb:symtab> 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 <gdb:sal> 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.  */
index 8fc9629eb0d0911913912e8c3304fe84ada15ad2..a2640f23bcbe308d1d736f4fd2fcdf9e2a78f354 100644 (file)
 /* The <gdb:type> 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";
index 5ba1f2cb00326ca1a5d52562096b1f1a1a5c9e64..e1b0020c98aa4e70f87b6f0d8201968e72733f88 100644 (file)
@@ -34,7 +34,7 @@
 
 /* The <gdb:value> 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";
 
index 74560953d71747765577c1845bd2cf39827c8610..3bf16c504a267fb0135f6f9e13caca3a91c54a01 100644 (file)
@@ -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
index ec955e79654638d2265e3f73cbb066f14e4f4d6b..ac64335ae74e07e86e097944afc69423cd39cea3 100644 (file)
 #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;
 
index 26d59e102a37860ebc5a2f3c836b76aea5e22cc5..aadc1e7702b3e2848ea8cefaa0202a3a444df356 100644 (file)
@@ -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;
index 760208f52b9bacb9b40d73e785d29d740ccf5545..b3e8daf9321ecb018b75066bc577ac94dfe64ba2 100644 (file)
@@ -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");
 
index 92a71f675af21fb5074d130c86799b1692e6efe2..5832a568efc984608182d8d7bb8dda9423a4e4d6 100644 (file)
 #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);
index 5141676493148273cf977b0660831c97805caa44..1cd0d9ba2531d5a09999dc29da512e2628dd796c 100644 (file)
 /* 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;
index 6f0bb8e5a4ca4e0c6402ff1148898bb42011dbbf..6b2b29d786464005f2fa96b88e9544da749fbce5 100644 (file)
@@ -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.  */
index 102a4270af35324aa0f8478ef0c2717c37b1bf29..89a822192c8ec65c7381a3468d47485fa42e4e88 100644 (file)
@@ -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");
index fda44da2843328869b1701da98b004bb44475071..374fb90ca47f52e5dff8031303661537067050dc 100644 (file)
@@ -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.  */
 
index aaee94f5e1f59e7d416ef8941a40ddcc944e7844..070923cddeb0addc81e12ca842425164d3424d1f 100644 (file)
@@ -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");
index 49e98c0d8988493616721994bb9a12c1a35b1ca8..e384d954d8d6288120ffd3fb59778b117acea6f0 100644 (file)
 #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");
index a006eb3883002c812def04421ffd449a18707033..e88c77eb03ad06a3b050dd4d47152a1d5b483ad5 100644 (file)
@@ -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");
index fb39187b18443bb5e1a5669e5008198553108fe2..df45e563b4da7a730b7ceb69f644f2c9005f33b6 100644 (file)
@@ -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");
 
index 34baa87502789161fb323da2073520655c5a5bb8..ac8f6d577277183810f199cec71c3930dbb93905 100644 (file)
@@ -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");
index 15cd15bb0dc08b6e3d22c16242d06014bd7f8b1e..93c3f7c93128842b55d750b12a71086e1a9c7b7b 100644 (file)
@@ -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.  */
 
index 3863408122438911743a27e25f8ca8d7d645358f..3ea7833eb35dc10c2f28f77b4d33af816478651b 100644 (file)
@@ -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.  */
 
index 5d361fe3998546d10922f87ab185c5db74551535..b771f321ce20ff1c90ebb9d9ef8f48de5a565e69 100644 (file)
@@ -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;
index d7b876bae289fb644e390f9d9d0edd14328cac82..7e9dc1d8cd7c6946d3fb31248ff8a1da0ce29042 100644 (file)
@@ -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");
index 0adcb0bc9ad7113b042d72ab4805cc819dc57136..edcb51fcc1257d7ea181a7f71d8b4bb2c687eace 100644 (file)
@@ -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;
index 579662f92d2e58e2090a90e1dcde1b8c68a4b049..33cb67cb9e2a3beef4ea9e61417f18dae7938050 100644 (file)
@@ -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;
index 55d8264fea9891b56cce57153325c97ececde891..1c7cacbddf32082999607ffadb9c28bc72504878 100644 (file)
@@ -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;
index 4571ef685c7ed48669ff1d36d2d2dd196d200f5d..c01e6b1aa1da0b0876503060ed264d1924b4cf42 100644 (file)
@@ -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_reg> *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");
index 4e8d93e15ab30a951d07aa100e9bab1e7b6a108f..c1ff8e8eca94b97d4eda4976021edc6dc64071cd 100644 (file)
@@ -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
index cc113cb7bfad92133568fab936af5703b958cda1..3fdfedefbea1fb5fe8740c11975f4fdf6618383a 100644 (file)
@@ -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;