Ping.
this patch: https://gcc.gnu.org/pipermail/gcc-patches/2025-February/675242.html
series: https://gcc.gnu.org/pipermail/gcc-patches/2025-February/675241.html
On 2/6/25 11:54, David Faust wrote:
> Add two new c-family attributes, "btf_type_tag" and "btf_decl_tag"
> along with a simple shared handler for them.
>
> gcc/c-family/
> * c-attribs.cc (c_common_attribute_table): Add btf_decl_tag and
> btf_type_tag attributes.
> (handle_btf_tag_attribute): New handler for both new attributes.
> ---
> gcc/c-family/c-attribs.cc | 25 ++++++++++++++++++++++++-
> 1 file changed, 24 insertions(+), 1 deletion(-)
>
> diff --git a/gcc/c-family/c-attribs.cc b/gcc/c-family/c-attribs.cc
> index f3181e7b57c..b51a8e755ae 100644
> --- a/gcc/c-family/c-attribs.cc
> +++ b/gcc/c-family/c-attribs.cc
> @@ -189,6 +189,8 @@ static tree handle_fd_arg_attribute (tree *, tree, tree,
> int, bool *);
> static tree handle_flag_enum_attribute (tree *, tree, tree, int, bool *);
> static tree handle_null_terminated_string_arg_attribute (tree *, tree, tree,
> int, bool *);
>
> +static tree handle_btf_tag_attribute (tree *, tree, tree, int, bool *);
> +
> /* Helper to define attribute exclusions. */
> #define ATTR_EXCL(name, function, type, variable) \
> { name, function, type, variable }
> @@ -640,7 +642,11 @@ const struct attribute_spec c_common_gnu_attributes[] =
> { "flag_enum", 0, 0, false, true, false, false,
> handle_flag_enum_attribute, NULL },
> { "null_terminated_string_arg", 1, 1, false, true, true, false,
> - handle_null_terminated_string_arg_attribute, NULL}
> + handle_null_terminated_string_arg_attribute,
> NULL},
> + { "btf_type_tag", 1, 1, false, true, false, false,
> + handle_btf_tag_attribute, NULL},
> + { "btf_decl_tag", 1, 1, true, false, false, false,
> + handle_btf_tag_attribute, NULL}
> };
>
> const struct scoped_attribute_specs c_common_gnu_attribute_table =
> @@ -5099,6 +5105,23 @@ handle_null_terminated_string_arg_attribute (tree
> *node, tree name, tree args,
> return NULL_TREE;
> }
>
> +/* Handle the "btf_decl_tag" and "btf_type_tag" attributes. */
> +
> +static tree
> +handle_btf_tag_attribute (tree * ARG_UNUSED (node), tree name, tree args,
> + int ARG_UNUSED (flags), bool *no_add_attrs)
> +{
> + if (!args)
> + *no_add_attrs = true;
> + else if (TREE_CODE (TREE_VALUE (args)) != STRING_CST)
> + {
> + error ("%qE attribute requires a string", name);
> + *no_add_attrs = true;
> + }
> +
> + return NULL_TREE;
> +}
> +
> /* Handle the "nonstring" variable attribute. */
>
> static tree