mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-26 09:08:59 +00:00
gdb: fix completion of anonymous struct members
Completing fields inside an anonymous struct does not work. With:
struct commit_counters_hot {
union {
struct {
long owner;
};
char padding[16];
};
};
I get:
(gdb) complete print cc_hot.
print cc_hot.padding
After this patch, I get:
(gdb) complete print cc_hot.
print cc_hot.owner
print cc_hot.padding
Update break1.c to include an anonymous struct. The tests that complete
"z_field" inside gdb.base/completion.exp would start to fail without the
fix.
Change-Id: I46b65a95ad16b0825de58dfa241777fe57acc361
Reviewed-By: Keith Seitz <keiths@redhat.com>
This commit is contained in:
@@ -994,9 +994,10 @@ add_struct_fields (struct type *type, completion_list &output,
|
||||
output.emplace_back (concat (prefix, type->field (i).name (),
|
||||
nullptr));
|
||||
}
|
||||
else if (type->field (i).type ()->code () == TYPE_CODE_UNION)
|
||||
else if (type->field (i).type ()->code () == TYPE_CODE_UNION
|
||||
|| type->field (i).type ()->code () == TYPE_CODE_STRUCT)
|
||||
{
|
||||
/* Recurse into anonymous unions. */
|
||||
/* Recurse into anonymous unions and structures. */
|
||||
add_struct_fields (type->field (i).type (),
|
||||
output, fieldname, namelen, prefix);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user