case CTF_K_CONST:
case CTF_K_RESTRICT:
case CTF_K_POINTER:
+ case CTF_K_TYPE_TAG:
/* Hash the referenced type, if not already hashed, and mix it in. */
child_type = ctf_type_reference (input, type);
if ((hval = ctf_dedup_hash_type (fp, input, inputs, input_num, child_type,
case CTF_K_SLICE:
case CTF_K_FUNC_LINKAGE:
case CTF_K_VAR:
+ case CTF_K_TYPE_TAG:
CTF_TYPE_WALK (ctf_type_reference (fp, type), err,
N_("error during referenced type walk"));
break;
goto err_target; /* errno is set for us. */
break;
+ case CTF_K_TYPE_TAG:
+ errtype = _("type tag");
+
+ ref = ctf_type_reference (input, type);
+ if ((ref = ctf_dedup_id_to_target (output, target, inputs, ninputs,
+ parents, input, input_num,
+ ref)) == CTF_ERR)
+ goto err_input; /* errno is set for us. */
+
+ if ((new_type = ctf_add_type_tag (target, isroot, ref, name)) == CTF_ERR)
+ goto err_target; /* errno is set for us. */
+ break;
+
case CTF_K_SLICE:
errtype = _("slice");