Replace with a new equivalent "is_packed" method on struct field.
Change-Id: I78647be3d408b40b63becb6b6f0fca211bede51c
Approved-By: Tom Tromey <tom@tromey.com>
gdb_puts (" => ", stream);
annotate_field_value ();
- if (TYPE_FIELD_PACKED (type, i))
+ if (type->field (i).is_packed ())
{
/* Bitfields require special handling, especially due to byte
order problems. */
if (type->field (i).is_static ()
|| (type->field (i).bitsize () == 0
&& subtype->length () == 0)
- || TYPE_FIELD_PACKED (type, i))
+ || type->field (i).is_packed ())
continue;
int bitpos = type->field (i).loc_bitpos ();
int offset, int fieldno, struct type *type)
{
/* Is this a bitfield? */
- if (TYPE_FIELD_PACKED (type, fieldno))
+ if (type->field (fieldno).is_packed ())
gen_bitfield_ref (ax, value, type->field (fieldno).type (),
(offset * TARGET_CHAR_BIT
+ type->field (fieldno).loc_bitpos ()),
fieldname);
return 1;
}
- if (TYPE_FIELD_PACKED (t, i))
+ if (t->field (i).is_packed ())
error (_("pointers to bitfield members not allowed"));
/* FIXME we need a way to do "want_address" equivalent */
stream, newshow, level + 4,
language, &local_flags, &local_podata);
- if (!is_static && TYPE_FIELD_PACKED (type, i))
+ if (!is_static && type->field (i).is_packed ())
{
/* It is a bitfield. This code does not attempt
to look at the bitpos and reconstruct filler,
annotate_field_value ();
if (!type->field (i).is_static ()
- && TYPE_FIELD_PACKED (type, i))
+ && type->field (i).is_packed ())
{
struct value *v;
m_bitsize = bitsize;
}
+ bool is_packed () const
+ {
+ return m_bitsize != 0;
+ }
+
/* Return true if this field is static; false if not. */
bool is_static () const
{
(TYPE_CPLUS_SPECIFIC(thistype)->virtual_field_bits == NULL ? 0 \
: B_TST(TYPE_CPLUS_SPECIFIC(thistype)->virtual_field_bits, (index)))
-#define TYPE_FIELD_PACKED(thistype, n) (((thistype)->field (n).bitsize ())!=0)
-
#define TYPE_FIELD_PRIVATE_BITS(thistype) \
TYPE_CPLUS_SPECIFIC(thistype)->private_field_bits
#define TYPE_FIELD_PROTECTED_BITS(thistype) \
m2_print_type (type->field (i).type (),
"",
stream, 0, level + 4, flags);
- if (TYPE_FIELD_PACKED (type, i))
+ if (type->field (i).is_packed ())
{
/* It is a bitfield. This code does not attempt
to look at the bitpos and reconstruct filler,
type->field (i).name (),
stream, show - 1, level + 4, flags);
if (!type->field (i).is_static ()
- && TYPE_FIELD_PACKED (type, i))
+ && type->field (i).is_packed ())
{
/* It is a bitfield. This code does not attempt
to look at the bitpos and reconstruct filler,
annotate_field_value ();
if (!type->field (i).is_static ()
- && TYPE_FIELD_PACKED (type, i))
+ && type->field (i).is_packed ())
{
struct value *v;
maybe_print_hole (stream, bitpos, "hole");
- if (TYPE_FIELD_PACKED (type, field_idx)
+ if (type->field (field_idx).is_packed ()
|| offset_bitpos % TARGET_CHAR_BIT != 0)
{
/* We're dealing with a bitfield. Print the bit offset. */
v = value_addr (v);
return v;
}
- if (TYPE_FIELD_PACKED (t, i))
+ if (t->field (i).is_packed ())
error (_("pointers to bitfield members not allowed"));
if (want_address)