gdb: add type::num_fields / type::set_num_fields
authorSimon Marchi <simon.marchi@efficios.com>
Fri, 22 May 2020 20:55:14 +0000 (16:55 -0400)
committerSimon Marchi <simon.marchi@efficios.com>
Fri, 22 May 2020 20:55:14 +0000 (16:55 -0400)
commit5e33d5f4e1a5f2c3556ee31715ddc030d039b597
treee58db956a72805d8a2a800cf0b913fd5808933ed
parent9392ebb3bbe4a43726ee8939c5447d88c7d3c1e4
gdb: add type::num_fields / type::set_num_fields

Add the `num_fields` and `set_num_fields` methods on `struct type`, in
order to remove the `TYPE_NFIELDS` macro.  In this patch, the
`TYPE_NFIELDS` macro is changed to use `type::num_fields`, so all the
call sites that are used to set the number of fields are changed to use
`type::set_num_fields`.  The next patch will remove `TYPE_NFIELDS`
completely.

I think that in the future, we should consider making the interface of
`struct type` better.  For example, right now it's possible for the
number of fields property and the actual number of fields set to be out
of sync.  However, I want to keep the existing behavior in this patch,
just translate from macros to methods.

gdb/ChangeLog:

* gdbtypes.h (struct type) <num_fields, set_num_fields>: New
methods.
(TYPE_NFIELDS): Use type::num_fields.  Change all call sites
that modify the number of fields to use type::set_num_fields
instead.

Change-Id: I5ad9de5be4097feaf942d111077434bf91d13dc5
14 files changed:
gdb/ChangeLog
gdb/ada-lang.c
gdb/buildsym.c
gdb/coffread.c
gdb/ctfread.c
gdb/dwarf2/read.c
gdb/eval.c
gdb/gdbtypes.c
gdb/gdbtypes.h
gdb/gnu-v3-abi.c
gdb/mdebugread.c
gdb/rust-lang.c
gdb/stabsread.c
gdb/windows-tdep.c