[cfe-dev] ObjC blocks documentation
fariborz jahanian via cfe-dev
cfe-dev at lists.llvm.org
Tue Mar 8 09:53:19 PST 2016
It was restricted due to performance implication of capturing the array. Earlier versions of ObjC blocks
captured the array address with this syntax. This was a source of confusion and it was decided to outright ban it.
- Fariborz
> On Mar 8, 2016, at 2:30 AM, Anastasia Stulova via cfe-dev <cfe-dev at lists.llvm.org> wrote:
>
> Hi,
>
> It seems that capturing arrays is not allowed in Clang Blocks i.e. the following code:
>
> int arr[10];
>
> int* (^bl)() = ^ int*() {return arr;};
>
> fails with:
>
> error: cannot refer to declaration with an array type inside block
>
> I have checked the documentation on Blocks in Clang and some ObjC manual but can’t find anything related to it.
> Also the Clang commit history doesn’t provide much information.
>
> Does anyone know why is this restricted? Or could anyone point to good documentation where such things are explained?
>
> Thanks in advance,
> Anastasia
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev <http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20160308/cfa801e0/attachment.html>
More information about the cfe-dev
mailing list