diff options
Diffstat (limited to 'libctf/ctf-dedup.c')
-rw-r--r-- | libctf/ctf-dedup.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/libctf/ctf-dedup.c b/libctf/ctf-dedup.c index 572a68d..649a76a 100644 --- a/libctf/ctf-dedup.c +++ b/libctf/ctf-dedup.c @@ -1064,10 +1064,6 @@ ctf_dedup_hash_type (ctf_dict_t *fp, ctf_dict_t *input, if (tp->ctt_name == 0 || !name || name[0] == '\0') name = NULL; - /* Treat the unknown kind just like the unimplemented type. */ - if (kind == CTF_K_UNKNOWN) - return "00000000000000000000"; - /* Decorate the name appropriately for the namespace it appears in: forwards appear in the namespace of their referent. */ @@ -2075,8 +2071,6 @@ ctf_dedup_rwalk_one_output_mapping (ctf_dict_t *output, switch (ctf_type_kind_unsliced (fp, type)) { case CTF_K_UNKNOWN: - /* Just skip things of unknown kind. */ - return 0; case CTF_K_FORWARD: case CTF_K_INTEGER: case CTF_K_FLOAT: @@ -2702,9 +2696,11 @@ ctf_dedup_emit_type (const char *hval, ctf_dict_t *output, ctf_dict_t **inputs, switch (kind) { case CTF_K_UNKNOWN: - /* These are types that CTF cannot encode, marked as such by the compile. - We intentionally do not re-emit these. */ - new_type = 0; + /* These are types that CTF cannot encode, marked as such by the + compiler. */ + errtype = _("unknown type"); + if ((new_type = ctf_add_unknown (target, isroot, name)) == CTF_ERR) + goto err_target; break; case CTF_K_FORWARD: /* This will do nothing if the type to which this forwards already exists, |