mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-06 14:49:38 +08:00
libctf: eliminate dtd_u, part 3: functions
One more member vanishes from the dtd_u, leaving only the member for struct/union/enum members. There's not much to do here, since as of commit afd78bd6f0a30ba5 we use the same representation (type sizes, etc) in the dtu_argv as we will use in the final vlen, with one exception: the vlen has alignment padding, and the dtu_argv did not. Simplify things by adding suitable padding in both cases. libctf/ChangeLog 2021-03-18 Nick Alcock <nick.alcock@oracle.com> * ctf-impl.h (ctf_dtdef_t) <dtd_u.dtu_argv>: Remove. * ctf-create.c (ctf_dtd_delete): No longer free it. (ctf_add_function): Use the dtd_vlen, not dtu_argv. Properly align. * ctf-serialize.c (ctf_emit_type_sect): Just copy the dtd_vlen. * ctf-types.c (ctf_func_type_info): Just use the vlen. (ctf_func_type_args): Likewise.
This commit is contained in:
@ -1678,7 +1678,7 @@ ctf_func_type_info (ctf_dict_t *fp, ctf_id_t type, ctf_funcinfo_t *fip)
|
||||
if ((dtd = ctf_dynamic_type (fp, type)) == NULL)
|
||||
args = (uint32_t *) ((uintptr_t) tp + increment);
|
||||
else
|
||||
args = dtd->dtd_u.dtu_argv;
|
||||
args = (uint32_t *) dtd->dtd_vlen;
|
||||
|
||||
if (fip->ctc_argc != 0 && args[fip->ctc_argc - 1] == 0)
|
||||
{
|
||||
@ -1715,7 +1715,7 @@ ctf_func_type_args (ctf_dict_t *fp, ctf_id_t type, uint32_t argc, ctf_id_t *argv
|
||||
if ((dtd = ctf_dynamic_type (fp, type)) == NULL)
|
||||
args = (uint32_t *) ((uintptr_t) tp + increment);
|
||||
else
|
||||
args = dtd->dtd_u.dtu_argv;
|
||||
args = (uint32_t *) dtd->dtd_vlen;
|
||||
|
||||
for (argc = MIN (argc, f.ctc_argc); argc != 0; argc--)
|
||||
*argv++ = *args++;
|
||||
|
Reference in New Issue
Block a user