aboutsummaryrefslogtreecommitdiff
path: root/libctf/ctf-open.c
diff options
context:
space:
mode:
authorNick Alcock <nick.alcock@oracle.com>2020-06-02 20:26:29 +0100
committerNick Alcock <nick.alcock@oracle.com>2020-07-22 17:57:26 +0100
commit2484ca436ac68716636a7aca3826bca3cda243a4 (patch)
treef43e2b3693ef4597519bc11bf25f2d9e4510016f /libctf/ctf-open.c
parent437061996d8d25ba902903e15952cfc14257b839 (diff)
downloadgdb-2484ca436ac68716636a7aca3826bca3cda243a4.zip
gdb-2484ca436ac68716636a7aca3826bca3cda243a4.tar.gz
gdb-2484ca436ac68716636a7aca3826bca3cda243a4.tar.bz2
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.
Diffstat (limited to 'libctf/ctf-open.c')
-rw-r--r--libctf/ctf-open.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/libctf/ctf-open.c b/libctf/ctf-open.c
index 4daa1e4..05672f3 100644
--- a/libctf/ctf-open.c
+++ b/libctf/ctf-open.c
@@ -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]++;
}