r243048 - Add documentation for the objc_boxable attribute

John McCall rjmccall at apple.com
Thu Jul 23 22:02:11 PDT 2015


> On Jul 23, 2015, at 10:01 PM, AlexDenisov <1101.debian at gmail.com> wrote:
> Added a bit more documentation for objc_boxable.
> Could you, please, check it in the release_37?

This is fine by me, but I think technically you might need Richard’s approval.

John.

> 
>> 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
> 





More information about the cfe-commits mailing list