I have created a bug to Khronos regarding this, but unfortunately I don't see it being progressed yet.
The problem here is that I am not sure we should deviate from the ObjC implementation because OpenCL blocks are largely taken from Clang ObjC implementation. My issue is in particular that it's not clear what the capture of array would mean and spec should either state it precisely or disallow using this feature at all to avoid costly operations. In ObjC community itself there were multiple interpretation of this in the past: http://lists.llvm.org/pipermail/cfe-dev/2016-March/047849.html
I am not sure we should go ahead with any implementation without further clarifications. I will ping the Khronos bug to see if the documentation can be improved.
I think this issue has been seen in the OpenCL conformance tests, but was fixed later on?
I think the comment should be updated.
|9 ↗||(On Diff #94503)|
Does this test anything different from the function foo below?
|21 ↗||(On Diff #94503)|
Can we check there is a memcpy here?
|27 ↗||(On Diff #94503)|
Can we CHECK-NOT memcpy?
|30 ↗||(On Diff #94503)|
Do we need this line as well?