[cfe-commits] [PATCH] Implicit fall-through between switch labels

Chandler Carruth chandlerc at google.com
Sat Apr 21 17:40:04 PDT 2012


On Sat, Apr 21, 2012 at 5:10 PM, Richard Smith <richard at metafoo.co.uk>wrote:

> On Sat, Apr 21, 2012 at 4:54 PM, Joe Groff <arcata at gmail.com> wrote:
>
>> On Mon, Apr 16, 2012 at 8:17 AM, Alexander Kornienko <alexfh at google.com>
>> wrote:
>> > This patch adds diagnostic of unintentional control flow fall-through
>> > between switch labels. It also provides a way to specifically mark a
>> switch
>> > label with a c++ 11 attribute [[fallthrough]] to specify an intentional
>> > fall-through. This also serves as an example of C++ 11 statement
>> attributes,
>> > and builds upon my recent patch, which introduces support for this
>> language
>> > feature.
>>
>> For future-proofing's sake, does the standard provide any guidance for
>> naming nonstandardized attributes? Should the attribute be named
>> something like 'clang::fallthrough' instead of just 'fallthrough', in
>> case a future standard or other implementations provide for a similar
>> attribute with different behavior?
>
>
> Yes, I think so. The attribute namespace mechanism was designed to allow
> such vendor extensions without creating problems for future
> standardization.
>

I would find this extremely unfortunate. The fallthrough check doesn't seem
likely at all to be a vendor-specific extension. I can't imagine any
possible standardized meaning for the attribute other than the use being
proposed here. Forcing users to type 'clang::' in each place seems to
reduce the clarity and readability of the construct with no real benefit.
Is this really necessary? Can we not add a top-level attribute when it
makes sense?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20120421/96dbd75b/attachment.html>


More information about the cfe-commits mailing list