From: Michael Matz <matz@suse.de>
To: Richard Sandiford <richard.sandiford@arm.com>
Cc: Richard Biener <richard.guenther@gmail.com>,
gcc-patches@gcc.gnu.org, joseph@codesourcery.com,
polacek@redhat.com, jason@redhat.com, nathan@acm.org
Subject: Re: [WIP RFC] Add support for keyword-based attributes
Date: Mon, 17 Jul 2023 13:53:45 +0000 (UTC) [thread overview]
Message-ID: <alpine.LSU.2.20.2307171347170.13548@wotan.suse.de> (raw)
In-Reply-To: <mptilajosm6.fsf@arm.com>
Hello,
On Mon, 17 Jul 2023, Richard Sandiford via Gcc-patches wrote:
> >> There are some existing attributes that similarly affect semantics
> >> in ways that cannot be ignored. vector_size is one obvious example.
> >> But that doesn't make it a good thing. :)
> >...
> > If you had added __arm(bar(args)) instead of __arm_bar(args) you would only
> > need one additional keyword - we could set aside a similar one for each
> > target then. I realize that double-nesting of arguments might prove a bit
> > challenging but still.
>
> Yeah, that would work.
So, essentially you want unignorable attributes, right? Then implement
exactly that: add one new keyword "__known_attribute__" (invent a better
name, maybe :) ), semantics exactly as with __attribute__ (including using
the same underlying lists in our data structures), with only one single
deviation: instead of the warning you give an error for unhandled
attributes. Done.
(Old compilers will barf of the unknown new keyword, new compilers will
error on unknown values used within such attribute list)
> > In any case I also think that attributes are what you want and their
> > ugliness/issues are not worse than the ugliness/issues of the keyword
> > approach IMHO.
>
> I guess the ugliness of keywords is the double underscore? What are the
> issues with the keyword approach though?
There are _always_ problems with new keywords, the more new keywords the
more problems :-) Is the keyword context-sensitive or not? What about
existing system headers that use it right now? Is it recognized in
free-standing or not? Is it only recognized for some targets? Is it
recognized only for certain configurations of the target?
So, let's define one new mechanism, for all targets, all configs, and all
language standards. Let's use __attribute__ with a twist :)
Ciao,
Michael.
next prev parent reply other threads:[~2023-07-17 13:53 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-14 15:56 Richard Sandiford
2023-07-14 17:17 ` Jakub Jelinek
2023-07-16 10:50 ` Richard Sandiford
2023-07-17 13:39 ` Jason Merrill
2023-07-17 14:06 ` Richard Sandiford
2023-07-14 21:14 ` Nathan Sidwell
2023-07-16 10:18 ` Richard Sandiford
2023-07-17 6:38 ` Richard Biener
2023-07-17 8:21 ` Richard Sandiford
2023-07-17 9:05 ` Richard Biener
2023-07-17 13:53 ` Michael Matz [this message]
2023-07-21 23:25 ` Joseph Myers
2023-08-16 10:36 ` Richard Sandiford
2023-08-16 13:22 ` Joseph Myers
2023-08-17 11:24 ` [PATCH] c: Add support for [[__extension__ ...]] Richard Sandiford
2023-08-17 17:07 ` Richard Biener
2023-08-17 18:36 ` Richard Sandiford
2023-08-18 9:51 ` Richard Sandiford
2023-08-18 19:51 ` Joseph Myers
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=alpine.LSU.2.20.2307171347170.13548@wotan.suse.de \
--to=matz@suse.de \
--cc=gcc-patches@gcc.gnu.org \
--cc=jason@redhat.com \
--cc=joseph@codesourcery.com \
--cc=nathan@acm.org \
--cc=polacek@redhat.com \
--cc=richard.guenther@gmail.com \
--cc=richard.sandiford@arm.com \
/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: link
Be 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).