Скажем, например, у меня есть скомпилированный модуль Objective C, который содержит что-то вроде следующего:
typedef bool (^BoolBlock)(void);
BoolBlock returnABlock(void)
{
return Block_copy(^bool(void){
printf("Block executing.\n");
return YES;
});
}
... затем, используя LLVM C ++ API, я загружаю этот Модуль и создаю CallInst для вызова функции returnABlock()
:
Function *returnABlockFunction = returnABlockModule->getFunction(std::string("returnABlock"));
CallInst *returnABlockCall = CallInst::Create(returnABlockFunction, "returnABlockCall", entryBlock);
Как я могу затем вызвать Блок, возвращенный через объект returnABlockCall
?