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

Reply via email to