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

Reply via email to