On Fri, 10 Jun 2022, 22:29 Alejandro Colomar via Gcc, <gcc@gcc.gnu.org> wrote:
> [I reordered some of your answers, to better answer] > > Hi Jakub, > > On 6/10/22 23:16, Jakub Jelinek wrote: > > On Fri, Jun 10, 2022 at 10:40:15PM +0200, Alejandro Colomar via Gcc > wrote: > >> So, could you please drop that from C2x? > > > > No! > > > > > [[attr0]] void foo (void), bar (void); > > appertains to both declarations, while > > True, but. > > > void baz [[attr1]] (void), qux [[attr2]] (void); > > appertains to only the specific declaration. > > That's true. But how many of these are spotted in the wild, > non-theoretical world? > > In the world I live, they mean effectively (but not theoretically) the > same thing :) > > > > void corge (void) [[attr3]]; > > appertains to the function type. > > Yes, that one is clear. > > > > > > > For one it diverges from C++, but also it means something different > > at the different locations. > > Well, I'd argue the same reasons to remove it from C++. Don't know how > useful that feature is for C++, though. I bet not much, but am not an > expert in the language. > It's used in libstdc++ because I couldn't get an attribute to work in any other location, because it isn't valid at other positions in a constrained function template. So no, we can't remove it from C++. > But, are we sure we want to add this to C? You know how difficult is to > revert mistakes in C, as opposed to C++, where additions and > deprecations are more common. > To the core language grammar? Are you sure about that? > This is basically breaking any ability to separately (textually) parse C > files without the build context. > > > Regards, > > Alex > > > -- > Alejandro Colomar > Linux man-pages comaintainer; http://www.kernel.org/doc/man-pages/ > http://www.alejandro-colomar.es/ >