ahatanak marked an inline comment as done.
ahatanak added inline comments.

================
Comment at: include/clang/Basic/AttrDocs.td:2261
+- The class or its subobjects have Objective-C pointer type members and ARC is
+  enabled.
+  }];
----------------
rjmccall wrote:
> I think the right list of exceptions is:
> 
>   - The class directly declares a virtual base or virtual methods.
>   - The class has a base class that is non-trivial for the purposes of calls.
>   - The class has a non-static data member whose type is non-trivial for the 
> purposes of calls, which includes:
>     - classes that are non-trivial for the purposes of calls
>     - __weak-qualified types in Objective-C++
>     - arrays of any of the above
> 
> I don't see why __strong types would be affected.  We've talked about 
> changing the C++ ABI for structs containing __strong members as part of the 
> __strong-pointers-in-structs feature, but that's not even implicated here 
> because there's an attribute which did not previously exist, so there's no 
> established ABI.
I realized I hadn't taken care of arrays of non-trivial structs. I fixed it in 
checkIllFormedTrivialABIStruct and added a test case to 
test/SemaObjCXX/attr-trivial-abi.mm.


https://reviews.llvm.org/D41039



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to