These fake functions were causing clang to crash when https://reviews.llvm.org/D98799 made some changes.
The line number information is no longer emitted for the __Block_byref_object helper functions (see clang/test/CodeGenCXX/debug-info-blocks.cpp), but I think that's okay since the line numbers were incorrect when the helper functions were shared among multiple __block variables. For example, the line number for __Block_byref_object_copy_ and __Block_byref_object_dispose_ was the line number for __block id b in func0, which was incorrect if the helper functions were called when func1 was called.
void (^gb)();
int func0() {
__block id b;
gb = ^{ (void)b; };
return 0;
}
int func1() {
__block id b;
gb = ^{ (void)b; };
return 0;
}
This comment refers to the FD->setImplicit(); that was removed.