It seems to be either a bug in the compiler or a leak tool, I'm not sure what. You must indicate an error with Apple.
The same thing happens with code reduction:
int i = 0; void (^block)() = ^{ int y = i; }; id x = block;
A leak appears only if the block refers to a local variable from the parent scope.
Do you see this happening in real production code, or just in this example?
Sven source share