libctf, open: drop unnecessary historical wart around forwards

When opening, we consider a forward with a kind above the maximum
allowable set of kinds and a forward of kind CTF_K_UNKNOWN to be a
forward to a struct.  Whatever CTF version it was that produced
forwards with no associated kind, it predates anything we can read:
remove this wart.

libctf/
	* ctf-open.c (init_types): Remove typeless CTF_K_FORWARD
	special-casing.
This commit is contained in:
Nick Alcock
2020-06-02 20:26:29 +01:00
parent 437061996d
commit 2484ca436a
2 changed files with 8 additions and 9 deletions

View File

@ -692,17 +692,11 @@ init_types (ctf_file_t *fp, ctf_header_t *cth)
if (vbytes < 0)
return ECTF_CORRUPT;
/* For forward declarations, ctt_type is the CTF_K_* kind for the tag,
so bump that population count too. */
if (kind == CTF_K_FORWARD)
{
/* For forward declarations, ctt_type is the CTF_K_* kind for the tag,
so bump that population count too. If ctt_type is unknown, treat
the tag as a struct. */
pop[tp->ctt_type]++;
if (tp->ctt_type == CTF_K_UNKNOWN || tp->ctt_type >= CTF_K_MAX)
pop[CTF_K_STRUCT]++;
else
pop[tp->ctt_type]++;
}
tp = (ctf_type_t *) ((uintptr_t) tp + increment + vbytes);
pop[kind]++;
}