r243048 - Add documentation for the objc_boxable attribute

AlexDenisov 1101.debian at gmail.com
Thu Jul 23 22:01:06 PDT 2015


Added a bit more documentation for objc_boxable.
Could you, please, check it in the release_37?

> On 23 Jul 2015, at 23:53, Alex Denisov <1101.debian at gmail.com> wrote:
> 
> Author: alexdenisov
> Date: Thu Jul 23 16:53:13 2015
> New Revision: 243048
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=243048&view=rev
> Log:
> Add documentation for the objc_boxable attribute
> 
> Modified:
>    cfe/trunk/include/clang/Basic/Attr.td
>    cfe/trunk/include/clang/Basic/AttrDocs.td
> 
> Modified: cfe/trunk/include/clang/Basic/Attr.td
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/Attr.td?rev=243048&r1=243047&r2=243048&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/Basic/Attr.td (original)
> +++ cfe/trunk/include/clang/Basic/Attr.td Thu Jul 23 16:53:13 2015
> @@ -1143,7 +1143,7 @@ def ObjCRuntimeName : Attr {
> def ObjCBoxable : Attr {
>   let Spellings = [GNU<"objc_boxable">];
>   let Subjects = SubjectList<[Record], ErrorDiag, "ExpectedStructOrUnion">;
> -  let Documentation = [Undocumented];
> +  let Documentation = [ObjCBoxableDocs];
> }
> 
> def OptimizeNone : InheritableAttr {
> 
> Modified: cfe/trunk/include/clang/Basic/AttrDocs.td
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/AttrDocs.td?rev=243048&r1=243047&r2=243048&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/Basic/AttrDocs.td (original)
> +++ cfe/trunk/include/clang/Basic/AttrDocs.td Thu Jul 23 16:53:13 2015
> @@ -492,6 +492,34 @@ can only be placed before an @protocol o
>     }];
> }
> 
> +def ObjCBoxableDocs : Documentation {
> +    let Category = DocCatFunction;
> +    let Content = [{
> +Structs and unions marked with the ``objc_boxable`` attribute can be used
> +with the Objective-C boxed expression syntax, ``@(...)``.
> +
> +**Usage**: ``__attribute__((objc_boxable))``. This attribute
> +can only be placed on a declaration of a trivially-copyable struct or union:
> +
> +.. code-block:: objc
> +
> +  struct __attribute__((objc_boxable)) some_struct {
> +    int i;
> +  };
> +  union __attribute__((objc_boxable)) some_union {
> +    int i;
> +    float f;
> +  };
> +  typedef struct __attribute__((objc_boxable)) _some_struct some_struct;
> +
> +  // ...
> +
> +  some_struct ss;
> +  NSValue *boxed = @(ss);
> +
> +    }];
> +}
> +
> def AvailabilityDocs : Documentation {
>   let Category = DocCatFunction;
>   let Content = [{
> 
> 
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 496 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150724/80398970/attachment.sig>


More information about the cfe-commits mailing list