]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit - gdb/dwarf2/loc.c
gdb: add accessors to struct dynamic_prop
authorSimon Marchi <simon.marchi@polymtl.ca>
Mon, 13 Jul 2020 02:58:51 +0000 (22:58 -0400)
committerSimon Marchi <simon.marchi@polymtl.ca>
Mon, 13 Jul 2020 02:58:51 +0000 (22:58 -0400)
commit8c2e4e0689ea244d0ed979171a3d09c9176b8175
tree8e1f4e0993f7f25a0946d64088015a88f883c8fd
parent7c6f271296319576fa00587928e5ff52ced9c1bb
gdb: add accessors to struct dynamic_prop

Add setters, to ensure that the kind and value of the property are
always kept in sync (a caller can't forget one or the other).  Add
getters, such that we can assert that when a caller accesses a data bit
of the property, the property is indeed of the corresponding kind.

Note that because of the way `struct dynamic_prop` is allocated
currently, we can't make the `m_kind` and `m_data` fields private.  That
would make the type non-default-constructible, and we would have to call
the constructor when allocating them.  However, I still prefixed them
with `m_` to indicate that they should not be accessed from outside the
class (and also to be able to use the name `kind` for the method).

gdb/ChangeLog:

* gdbtypes.h (struct dynamic_prop) <kind, set_undefined,
const_val, set_const_val, baton, set_locexpr, set_loclist,
set_addr_offset, variant_parts, set_variant_parts,
original_type, set_original_type>: New methods.
<kind>: Rename to...
<m_kind>: ... this.  Update all users to use the new methods
instead.
<data>: Rename to...
<m_data>: ... this.  Update all users to use the new methods
instead.

Change-Id: Ib72a8eb440dfeb1a5421d0933334230d7f2478f9
12 files changed:
gdb/ChangeLog
gdb/ada-typeprint.c
gdb/ctfread.c
gdb/dwarf2/loc.c
gdb/dwarf2/read.c
gdb/gdbtypes.c
gdb/gdbtypes.h
gdb/gnu-v3-abi.c
gdb/mdebugread.c
gdb/p-valprint.c
gdb/rust-lang.c
gdb/type-stack.c