[binutils-gdb] gdb: remove TYPE_DATA_LOCATION_ADDR macro
Simon Marchi
simark@sourceware.org
Fri Oct 24 15:25:22 GMT 2025
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=1e3c445f54d98eca54223eb309c92c1d4208e17a
commit 1e3c445f54d98eca54223eb309c92c1d4208e17a
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Thu Oct 23 15:07:01 2025 -0400
gdb: remove TYPE_DATA_LOCATION_ADDR macro
Remove it in favor of using the dynamic_prop::const_val method directly.
Change-Id: I8dea18d7f504d4ec982b6624342f7a301e8fd636
Approved-By: Tom Tromey <tom@tromey.com>
Diff:
---
gdb/gdbtypes.h | 4 ----
gdb/value.c | 31 +++++++++++++++++++------------
2 files changed, 19 insertions(+), 16 deletions(-)
diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
index e0d0c3431c9..e66701c7029 100644
--- a/gdb/gdbtypes.h
+++ b/gdb/gdbtypes.h
@@ -1931,10 +1931,6 @@ extern unsigned type_align (struct type *);
space in struct type. */
extern bool set_type_align (struct type *, ULONGEST);
-/* Property accessors for the type data location. */
-#define TYPE_DATA_LOCATION_ADDR(thistype) \
- ((thistype)->dyn_prop (DYN_PROP_DATA_LOCATION)->const_val ())
-
/* C++ */
#define TYPE_SELF_TYPE(thistype) internal_type_self_type (thistype)
diff --git a/gdb/value.c b/gdb/value.c
index 7e530757567..7ee212ab2a2 100644
--- a/gdb/value.c
+++ b/gdb/value.c
@@ -1420,12 +1420,15 @@ value::address () const
{
if (m_lval != lval_memory)
return 0;
+
if (m_parent != NULL)
return m_parent->address () + m_offset;
- if (NULL != type ()->dyn_prop (DYN_PROP_DATA_LOCATION))
+
+ if (dynamic_prop *dyn_prop = type ()->dyn_prop (DYN_PROP_DATA_LOCATION);
+ dyn_prop != nullptr)
{
- gdb_assert (type ()->dyn_prop (DYN_PROP_DATA_LOCATION)->is_constant ());
- return TYPE_DATA_LOCATION_ADDR (type ());
+ gdb_assert (dyn_prop->is_constant ());
+ return dyn_prop->const_val ();
}
return m_location.address + m_offset;
@@ -1658,15 +1661,15 @@ value::set_component_location (const struct value *whole)
/* If the WHOLE value has a dynamically resolved location property then
update the address of the COMPONENT. */
type = whole->type ();
- if (NULL != type->dyn_prop (DYN_PROP_DATA_LOCATION)
- && type->dyn_prop (DYN_PROP_DATA_LOCATION)->is_constant ())
- set_address (TYPE_DATA_LOCATION_ADDR (type));
+ if (dynamic_prop *dyn_prop = type->dyn_prop (DYN_PROP_DATA_LOCATION);
+ dyn_prop != nullptr && dyn_prop->is_constant ())
+ set_address (dyn_prop->const_val ());
/* Similarly, if the COMPONENT value has a dynamically resolved location
property then update its address. */
type = this->type ();
- if (NULL != type->dyn_prop (DYN_PROP_DATA_LOCATION)
- && type->dyn_prop (DYN_PROP_DATA_LOCATION)->is_constant ())
+ if (dynamic_prop *dyn_prop = type->dyn_prop (DYN_PROP_DATA_LOCATION);
+ dyn_prop != nullptr && dyn_prop->is_constant ())
{
/* If the COMPONENT has a dynamic location, and is an
lval_internalvar_component, then we change it to a lval_memory.
@@ -1692,7 +1695,8 @@ value::set_component_location (const struct value *whole)
}
else
gdb_assert (this->lval () == lval_memory);
- set_address (TYPE_DATA_LOCATION_ADDR (type));
+
+ set_address (dyn_prop->const_val ());
}
}
@@ -3683,9 +3687,12 @@ value_from_contents_and_address (struct type *type,
v = value::allocate_lazy (resolved_type);
else
v = value_from_contents (resolved_type, valaddr);
- if (resolved_type_no_typedef->dyn_prop (DYN_PROP_DATA_LOCATION) != NULL
- && resolved_type_no_typedef->dyn_prop (DYN_PROP_DATA_LOCATION)->is_constant ())
- address = TYPE_DATA_LOCATION_ADDR (resolved_type_no_typedef);
+
+ if (dynamic_prop *dyn_prop
+ = resolved_type_no_typedef->dyn_prop (DYN_PROP_DATA_LOCATION);
+ dyn_prop != nullptr && dyn_prop->is_constant ())
+ address = dyn_prop->const_val ();
+
v->set_lval (lval_memory);
v->set_address (address);
return v;
More information about the Gdb-cvs
mailing list