mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-05-22 17:57:45 +08:00
libctf: add ctf_type_kind_forwarded
This is just like ctf_type_kind, except that forwards get the type of the thing being pointed to rather than CTF_K_FORWARD. include/ * ctf-api.h (ctf_type_kind_forwarded): New. libctf/ * ctf-types.c (ctf_type_kind_forwarded): New.
This commit is contained in:
@ -677,6 +677,26 @@ ctf_type_kind (ctf_file_t *fp, ctf_id_t type)
|
||||
return kind;
|
||||
}
|
||||
|
||||
/* Return the kind of this type, except, for forwards, return the kind of thing
|
||||
this is a forward to. */
|
||||
int
|
||||
ctf_type_kind_forwarded (ctf_file_t *fp, ctf_id_t type)
|
||||
{
|
||||
int kind;
|
||||
const ctf_type_t *tp;
|
||||
|
||||
if ((kind = ctf_type_kind (fp, type)) < 0)
|
||||
return -1; /* errno is set for us. */
|
||||
|
||||
if (kind != CTF_K_FORWARD)
|
||||
return kind;
|
||||
|
||||
if ((tp = ctf_lookup_by_id (&fp, type)) == NULL)
|
||||
return -1; /* errno is set for us. */
|
||||
|
||||
return tp->ctt_type;
|
||||
}
|
||||
|
||||
/* If the type is one that directly references another type (such as POINTER),
|
||||
then return the ID of the type to which it refers. */
|
||||
|
||||
|
Reference in New Issue
Block a user