public inbox for gcc-cvs@sourceware.org help / color / mirror / Atom feed
From: David Faust <dfaust@gcc.gnu.org> To: gcc-cvs@gcc.gnu.org Subject: [gcc(refs/users/dfaust/heads/btf-type-tag-new-rebase)] c-family: Add BTF tag attribute handlers Date: Fri, 7 Oct 2022 18:34:31 +0000 (GMT) [thread overview] Message-ID: <20221007183431.2A4213857BA6@sourceware.org> (raw) https://gcc.gnu.org/g:4587fe84d9fed5eb7f0ea58784ec04f878ea5312 commit 4587fe84d9fed5eb7f0ea58784ec04f878ea5312 Author: David Faust <david.faust@oracle.com> Date: Wed Mar 2 15:01:58 2022 -0800 c-family: Add BTF tag attribute handlers This patch adds attribute handlers in GCC for two attributes already supported in LLVM: "btf_decl_tag" and "btf_type_tag". Both attributes accept a single string constant argument, and are used to add arbitrary annotations to debug information generated for the types/decls to which they apply. gcc/c-family/ * c-attribs.cc (c_common_attribute_table): Add new attributes btf_decl_tag and btf_type_tag. (handle_btf_decl_tag_attribute): New. (handle_btf_type_tag_attribute): Likewise. Diff: --- gcc/c-family/c-attribs.cc | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/gcc/c-family/c-attribs.cc b/gcc/c-family/c-attribs.cc index 671ea38fd1b..346d8dc8a81 100644 --- a/gcc/c-family/c-attribs.cc +++ b/gcc/c-family/c-attribs.cc @@ -176,6 +176,9 @@ static tree handle_signed_bool_precision_attribute (tree *, tree, tree, int, static tree handle_retain_attribute (tree *, tree, tree, int, bool *); static tree handle_fd_arg_attribute (tree *, tree, tree, int, bool *); +static tree handle_btf_decl_tag_attribute (tree *, tree, tree, int, bool *); +static tree handle_btf_type_tag_attribute (tree *, tree, tree, int, bool *); + /* Helper to define attribute exclusions. */ #define ATTR_EXCL(name, function, type, variable) \ { name, function, type, variable } @@ -565,6 +568,12 @@ const struct attribute_spec c_common_attribute_table[] = handle_fd_arg_attribute, NULL}, { "fd_arg_write", 1, 1, false, true, true, false, handle_fd_arg_attribute, NULL}, + + { "btf_type_tag", 1, 1, false, true, false, false, + handle_btf_type_tag_attribute, NULL }, + { "btf_decl_tag", 1, 1, false, false, false, false, + handle_btf_decl_tag_attribute, NULL }, + { NULL, 0, 0, false, false, false, false, NULL, NULL } }; @@ -5921,6 +5930,42 @@ handle_tainted_args_attribute (tree *node, tree name, tree, int, return NULL_TREE; } +/* Handle a "btf_decl_tag" attribute; arguments as in + struct attribute_spec.handler. */ + +static tree +handle_btf_decl_tag_attribute (tree *, tree name, tree args, int, + 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 a "btf_type_tag" attribute; arguments as in + struct attribute_spec.handler. */ + +static tree +handle_btf_type_tag_attribute (tree *, tree name, tree args, int, + 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; +} + /* Attempt to partially validate a single attribute ATTR as if it were to be applied to an entity OPER. */
reply other threads:[~2022-10-07 18:34 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20221007183431.2A4213857BA6@sourceware.org \ --to=dfaust@gcc.gnu.org \ --cc=gcc-cvs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).