aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@polymtl.ca>2023-08-31 11:46:22 -0400
committerSimon Marchi <simon.marchi@efficios.com>2023-08-31 13:16:11 -0400
commit321d8b3f28cc04fe8c58ac391025e8b18134ca60 (patch)
treea57696273f1047593243f5398e3c8bad53d965ab /gdb
parent4bea97df59d505e1e74876b94cd3f99a42f742d9 (diff)
downloadgdb-321d8b3f28cc04fe8c58ac391025e8b18134ca60.zip
gdb-321d8b3f28cc04fe8c58ac391025e8b18134ca60.tar.gz
gdb-321d8b3f28cc04fe8c58ac391025e8b18134ca60.tar.bz2
gdb: introduce field::is_artificial / field::set_is_artificial
Add these two methods, rename the field to m_artificial to make it pseudo private. Change-Id: If3a3825473d1d79bb586a8a074b87bba9b43fb1a Approved-By: Tom Tromey <tom@tromey.com>
Diffstat (limited to 'gdb')
-rw-r--r--gdb/buildsym.c2
-rw-r--r--gdb/dwarf2/read.c14
-rw-r--r--gdb/gdb-gdb.py.in2
-rw-r--r--gdb/gdbtypes.c4
-rw-r--r--gdb/gdbtypes.h14
-rw-r--r--gdb/mdebugread.c2
-rw-r--r--gdb/stabsread.c3
7 files changed, 26 insertions, 15 deletions
diff --git a/gdb/buildsym.c b/gdb/buildsym.c
index 3c1e917..03d6e03 100644
--- a/gdb/buildsym.c
+++ b/gdb/buildsym.c
@@ -277,7 +277,7 @@ buildsym_compunit::finish_block_internal
if (sym->is_argument ())
{
ftype->field (iparams).set_type (sym->type ());
- TYPE_FIELD_ARTIFICIAL (ftype, iparams) = 0;
+ ftype->field (iparams).set_is_artificial (false);
iparams++;
}
}
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
index 94d98fe..63b099c 100644
--- a/gdb/dwarf2/read.c
+++ b/gdb/dwarf2/read.c
@@ -6060,7 +6060,7 @@ quirk_rust_enum (struct type *type, struct objfile *objfile)
/* Put the discriminant at index 0. */
type->field (0).set_type (field_type);
- TYPE_FIELD_ARTIFICIAL (type, 0) = 1;
+ type->field (0).set_is_artificial (true);
type->field (0).set_name ("<<discriminant>>");
type->field (0).set_loc_bitpos (bit_offset);
@@ -6158,7 +6158,7 @@ quirk_rust_enum (struct type *type, struct objfile *objfile)
/* Install the discriminant at index 0 in the union. */
type->field (0) = *disr_field;
- TYPE_FIELD_ARTIFICIAL (type, 0) = 1;
+ type->field (0).set_is_artificial (true);
type->field (0).set_name ("<<discriminant>>");
/* We need a way to find the correct discriminant given a
@@ -11743,7 +11743,7 @@ dwarf2_add_field (struct field_info *fip, struct die_info *die,
pointer or virtual base class pointer) to private. */
if (dwarf2_attr (die, DW_AT_artificial, cu))
{
- FIELD_ARTIFICIAL (*fp) = 1;
+ fp->set_is_artificial (true);
new_field->accessibility = DW_ACCESS_private;
fip->non_public_fields = true;
}
@@ -13588,10 +13588,10 @@ quirk_ada_thick_pointer (struct die_info *die, struct dwarf2_cu *cu,
struct field &upper = range_fields[range_fields.size () - 1];
lower.set_type (underlying);
- FIELD_ARTIFICIAL (lower) = 1;
+ lower.set_is_artificial (true);
upper.set_type (underlying);
- FIELD_ARTIFICIAL (upper) = 1;
+ upper.set_is_artificial (true);
if (!recognize_bound_expression (child_die, DW_AT_lower_bound,
&bounds_offset, &lower, cu)
@@ -14713,9 +14713,9 @@ read_subroutine_type (struct die_info *die, struct dwarf2_cu *cu)
4.5 does not yet generate. */
attr = dwarf2_attr (child_die, DW_AT_artificial, cu);
if (attr != nullptr)
- TYPE_FIELD_ARTIFICIAL (ftype, iparams) = attr->as_boolean ();
+ ftype->field (iparams).set_is_artificial (attr->as_boolean ());
else
- TYPE_FIELD_ARTIFICIAL (ftype, iparams) = 0;
+ ftype->field (iparams).set_is_artificial (false);
arg_type = die_type (child_die, cu);
/* RealView does not mark THIS as const, which the testsuite
diff --git a/gdb/gdb-gdb.py.in b/gdb/gdb-gdb.py.in
index 56d063c..af4453f 100644
--- a/gdb/gdb-gdb.py.in
+++ b/gdb/gdb-gdb.py.in
@@ -172,7 +172,7 @@ class StructMainTypePrettyPrinter:
"""Return an image of the main_type field number FIELDNO."""
f = self.val["flds_bnds"]["fields"][fieldno]
label = "flds_bnds.fields[%d]:" % fieldno
- if f["artificial"]:
+ if f["m_artificial"]:
label += " (artificial)"
fields = []
fields.append("m_name = %s" % f["m_name"])
diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
index 6abe5ea..ca168b3 100644
--- a/gdb/gdbtypes.c
+++ b/gdb/gdbtypes.c
@@ -5541,8 +5541,8 @@ copy_type_recursive (struct type *type, htab_t copied_types)
for (i = 0; i < nfields; i++)
{
- TYPE_FIELD_ARTIFICIAL (new_type, i) =
- TYPE_FIELD_ARTIFICIAL (type, i);
+ new_type->field (i).set_is_artificial
+ (TYPE_FIELD_ARTIFICIAL (type, i));
TYPE_FIELD_BITSIZE (new_type, i) = TYPE_FIELD_BITSIZE (type, i);
if (type->field (i).type ())
new_type->field (i).set_type
diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
index 8f592db..43263a9 100644
--- a/gdb/gdbtypes.h
+++ b/gdb/gdbtypes.h
@@ -564,6 +564,16 @@ struct field
m_name = name;
}
+ bool is_artificial () const
+ {
+ return m_artificial;
+ }
+
+ void set_is_artificial (bool is_artificial)
+ {
+ m_artificial = is_artificial;
+ }
+
/* Return true if this field is static; false if not. */
bool is_static () const
{
@@ -650,7 +660,7 @@ struct field
to the user. For TYPE_CODE_RANGE it is set if the specific
bound is not defined. */
- unsigned int artificial : 1;
+ unsigned int m_artificial : 1;
/* * Discriminant for union field_location. */
@@ -1913,7 +1923,7 @@ extern void set_type_vptr_basetype (struct type *, struct type *);
(TYPE_CPLUS_SPECIFIC(thistype)->virtual_field_bits == NULL ? 0 \
: B_TST(TYPE_CPLUS_SPECIFIC(thistype)->virtual_field_bits, (index)))
-#define FIELD_ARTIFICIAL(thisfld) ((thisfld).artificial)
+#define FIELD_ARTIFICIAL(thisfld) ((thisfld).is_artificial ())
#define FIELD_BITSIZE(thisfld) ((thisfld).bitsize)
#define TYPE_FIELD_ARTIFICIAL(thistype, n) FIELD_ARTIFICIAL((thistype)->field (n))
diff --git a/gdb/mdebugread.c b/gdb/mdebugread.c
index ad9967b..109bd64 100644
--- a/gdb/mdebugread.c
+++ b/gdb/mdebugread.c
@@ -1206,7 +1206,7 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
if (sym->is_argument ())
{
ftype->field (iparams).set_type (sym->type ());
- TYPE_FIELD_ARTIFICIAL (ftype, iparams) = 0;
+ ftype->field (iparams).set_is_artificial (false);
iparams++;
}
}
diff --git a/gdb/stabsread.c b/gdb/stabsread.c
index 1269fc0..4a4b39b 100644
--- a/gdb/stabsread.c
+++ b/gdb/stabsread.c
@@ -1002,7 +1002,8 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
if (ptype->code () == TYPE_CODE_VOID)
ptype = builtin_type (objfile)->builtin_int;
ftype->field (nparams).set_type (ptype);
- TYPE_FIELD_ARTIFICIAL (ftype, nparams++) = 0;
+ ftype->field (nparams).set_is_artificial (false);
+ nparams++;
}
ftype->set_num_fields (nparams);
ftype->set_is_prototyped (true);