On Wed, Feb 19, 2014 at 6:23 PM, Richard Smith <[email protected]> wrote: > On Wed, Feb 19, 2014 at 12:56 PM, Aaron Ballman <[email protected]> > wrote: >> >> Author: aaronballman >> Date: Wed Feb 19 14:56:51 2014 >> New Revision: 201715 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=201715&view=rev >> Log: >> Moving the documentation for the clang::fallthrough attribute into >> AttrDocs. >> >> Modified: >> cfe/trunk/docs/LanguageExtensions.rst >> cfe/trunk/include/clang/Basic/Attr.td >> cfe/trunk/include/clang/Basic/AttrDocs.td >> >> Modified: cfe/trunk/docs/LanguageExtensions.rst >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/LanguageExtensions.rst?rev=201715&r1=201714&r2=201715&view=diff >> >> ============================================================================== >> --- cfe/trunk/docs/LanguageExtensions.rst (original) >> +++ cfe/trunk/docs/LanguageExtensions.rst Wed Feb 19 14:56:51 2014 >> @@ -1570,51 +1570,6 @@ Non-standard C++11 Attributes >> Clang's non-standard C++11 attributes live in the ``clang`` attribute >> namespace. >> >> -The ``clang::fallthrough`` attribute >> ------------------------------------- >> - >> -The ``clang::fallthrough`` attribute is used along with the >> -``-Wimplicit-fallthrough`` argument to annotate intentional fall-through >> -between switch labels. It can only be applied to a null statement placed >> at a >> -point of execution between any statement and the next switch label. It >> is >> -common to mark these places with a specific comment, but this attribute >> is >> -meant to replace comments with a more strict annotation, which can be >> checked >> -by the compiler. This attribute doesn't change semantics of the code and >> can >> -be used wherever an intended fall-through occurs. It is designed to >> mimic >> -control-flow statements like ``break;``, so it can be placed in most >> places >> -where ``break;`` can, but only if there are no statements on the >> execution path >> -between it and the next switch label. >> - >> -Here is an example: >> - >> -.. code-block:: c++ >> - >> - // compile with -Wimplicit-fallthrough >> - switch (n) { >> - case 22: >> - case 33: // no warning: no statements between case labels >> - f(); >> - case 44: // warning: unannotated fall-through >> - g(); >> - [[clang::fallthrough]]; >> - case 55: // no warning >> - if (x) { >> - h(); >> - break; >> - } >> - else { >> - i(); >> - [[clang::fallthrough]]; >> - } >> - case 66: // no warning >> - p(); >> - [[clang::fallthrough]]; // warning: fallthrough annotation does not >> - // directly precede case label >> - q(); >> - case 77: // warning: unannotated fall-through >> - r(); >> - } >> - >> ``gnu::`` attributes >> -------------------- > > > This change has left the remaining text here a bit broken: "Clang also > supports GCC’s gnu attribute namespace [...]".
Good catch; I'll reword temporarily, but ideally this should move into the attribute documentation. Thanks! ~Aaron _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
