According to Clang source code for generating Objective-C block code.
Objective-C block literal EmitBlockLiteral.
llvm::Value *CodeGenFunction::EmitBlockLiteral(const CGBlockInfo &blockInfo) {
LLVM , -. . self.
buildBlockDescriptor -> buildCopyHelper -> GenerateCopyHelperFunction
GenerateCopyHelperFunction Clang objc_storeStrong auto Objective-C, .
for (const auto &CI : blockDecl->captures()) {
...
EmitARCStoreStrongCall(...
, self (1 β 2).
EmitBlockLiteral objc_retain auto Objective-C, .
for (const auto &CI : blockDecl->captures()) {
...
EmitExprAsInit -> EmitScalarInit -> EmitARCRetain
, self (2 β 3).
. , -, , Objective-C .