forked from Imagelibrary/binutils-gdb
Add accessors for symbol's artificial field
For a series I'm experimenting with, it was handy to hide a symbol's "artificial" field behind accessors. This patch is the result.
This commit is contained in:
@@ -3854,7 +3854,7 @@ ada_resolve_variable (struct symbol *sym, const struct block *block,
|
|||||||
candidates.end (),
|
candidates.end (),
|
||||||
[] (block_symbol &bsym)
|
[] (block_symbol &bsym)
|
||||||
{
|
{
|
||||||
return bsym.symbol->artificial;
|
return bsym.symbol->is_artificial ();
|
||||||
}),
|
}),
|
||||||
candidates.end ());
|
candidates.end ());
|
||||||
|
|
||||||
@@ -13456,9 +13456,9 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* See language.h. */
|
/* See language.h. */
|
||||||
virtual bool symbol_printing_suppressed (struct symbol *symbol) const override
|
bool symbol_printing_suppressed (struct symbol *symbol) const override
|
||||||
{
|
{
|
||||||
return symbol->artificial;
|
return symbol->is_artificial ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* See language.h. */
|
/* See language.h. */
|
||||||
|
|||||||
@@ -20634,7 +20634,7 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
|
|||||||
/* Handle DW_AT_artificial. */
|
/* Handle DW_AT_artificial. */
|
||||||
attr = dwarf2_attr (die, DW_AT_artificial, cu);
|
attr = dwarf2_attr (die, DW_AT_artificial, cu);
|
||||||
if (attr != nullptr)
|
if (attr != nullptr)
|
||||||
sym->artificial = attr->as_boolean ();
|
sym->set_is_artificial (attr->as_boolean ());
|
||||||
|
|
||||||
/* Default assumptions.
|
/* Default assumptions.
|
||||||
Use the passed type or decode it from the die. */
|
Use the passed type or decode it from the die. */
|
||||||
|
|||||||
16
gdb/symtab.h
16
gdb/symtab.h
@@ -1203,7 +1203,7 @@ struct symbol : public general_symbol_info, public allocate_on_obstack
|
|||||||
m_is_inlined (0),
|
m_is_inlined (0),
|
||||||
maybe_copied (0),
|
maybe_copied (0),
|
||||||
subclass (SYMBOL_NONE),
|
subclass (SYMBOL_NONE),
|
||||||
artificial (false)
|
m_artificial (false)
|
||||||
{
|
{
|
||||||
/* We can't use an initializer list for members of a base class, and
|
/* We can't use an initializer list for members of a base class, and
|
||||||
general_symbol_info needs to stay a POD type. */
|
general_symbol_info needs to stay a POD type. */
|
||||||
@@ -1369,6 +1369,18 @@ struct symbol : public general_symbol_info, public allocate_on_obstack
|
|||||||
m_value.chain = sym;
|
m_value.chain = sym;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return true if this symbol was marked as artificial. */
|
||||||
|
bool is_artificial () const
|
||||||
|
{
|
||||||
|
return m_artificial;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Set the 'artificial' flag on this symbol. */
|
||||||
|
void set_is_artificial (bool artificial)
|
||||||
|
{
|
||||||
|
m_artificial = artificial;
|
||||||
|
}
|
||||||
|
|
||||||
/* Data type of value */
|
/* Data type of value */
|
||||||
|
|
||||||
struct type *m_type = nullptr;
|
struct type *m_type = nullptr;
|
||||||
@@ -1423,7 +1435,7 @@ struct symbol : public general_symbol_info, public allocate_on_obstack
|
|||||||
|
|
||||||
/* Whether this symbol is artificial. */
|
/* Whether this symbol is artificial. */
|
||||||
|
|
||||||
bool artificial : 1;
|
bool m_artificial : 1;
|
||||||
|
|
||||||
/* Line number of this symbol's definition, except for inlined
|
/* Line number of this symbol's definition, except for inlined
|
||||||
functions. For an inlined function (class LOC_BLOCK and
|
functions. For an inlined function (class LOC_BLOCK and
|
||||||
|
|||||||
Reference in New Issue
Block a user