On 15/01/2014 20:29, Richard Smith wrote:
On Wed Jan 15 2014 at 3:42:08 AM, Alp Toker <[email protected]
<mailto:[email protected]>> wrote:
On 15/01/2014 06:04, Nico Weber wrote:
> Does gcc allow this for C? Is C planning on standardizing this?
The impression I get is that everybody's doing it but nobody's talking
about it. Yet.
Weird. The impression I get is that nobody is doing it (at least, not
publically).
People said they were patching internally to use new security and
optimization attributes, and presumably there are others ("nobody's
talking about it"). Seems a reasonable use case.
What if a future revision of a standard we care about (maybe C,
OpenMP, OpenCL, CUDA, ...) standardizes a *different* meaning for
square brackets? Code that used our extension would be in trouble.
This is a great reason to hold back from switching it on globally.
If we don't have "nudge" power in getting this as a de-facto C1y feature
it becomes less interesting.
This isn't even purely theoretical -- Objective-C does this, and it is
essentially only by luck that it's possible to disambiguate this
fully. As another example, if C17 took C++'s lambdas but not its
attributes, we'd run into some amount of trouble with expressions like
int x[ [] { ... } () ];
(which is an ill-formed attribute under the C++11 rules).
It'd be far from the worst disambiguation we have in-tree.
Objective-C disambiguation is working fine with the C11 extension
enabled for what it's worth.
I'm withdrawing the patch, there are probably more useful things to be
working on.
Tentatively setting a date to revisit this in a years time or after gcc
implements, whichever comes first, when there might be a clearer way
forward.
Alp.
--
http://www.nuanti.com
the browser experts
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits