Create a new channel as a copy of main.
Rename main to:
Delete main? This cannot be undone.
typedef int (^BlockTy)(void); struct S0 { int a; }; struct S { int i; void func(BlockTy __attribute__((noescape))); int foo(S0 &); void m() { __block S0 x; func(^{ return foo(x); }); } };