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  <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.
This commit is contained in:
Tom Tromey 2020-12-04 13:09:43 -07:00
parent e633b1172a
commit f99b517750
42 changed files with 225 additions and 162 deletions

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

View 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);

View file

@ -26,10 +26,9 @@
#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;

View 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";

View 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";

View 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";

View file

@ -32,10 +32,9 @@
#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;

View file

@ -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;

View 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";

View file

@ -25,10 +25,9 @@
#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;

View 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";

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

View 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";

View file

@ -28,10 +28,9 @@
/* 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;

View file

@ -30,14 +30,14 @@
/* 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";

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

View file

@ -34,10 +34,9 @@
/* 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";

View 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";

View 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

View file

@ -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;

View 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;

View 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");

View file

@ -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);

View file

@ -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;

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

View 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");

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

View 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");

View file

@ -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");

View 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");

View 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");

View 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");

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

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

View 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;

View 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");

View 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;

View 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,7 +378,7 @@ 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),
= ((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;

View 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;

View 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");

View 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

View 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;