如何将指向函数的指针传递给另一个函数?我有这样的功能:
std::string PRINT_STATE_NAME(pPrintState func);
其中pPrintState是这样的typedef:
typedef void (*pPrintState)(std::string* buffer);
所以我JITed pPrintState并使其llvm :: FunctionType可用。
接下来我想从llvm C ++ API调用上面定义的PRINT_STATE_NAME()。不幸的是,我无法弄清楚要传递给调用指令的参数。 Atm我用内部类型转换的pPrintState创建了一个llvm :: GlobalVariable。但是我应该作为初始化程序传递什么?或者我完全走错了轨道?任何帮助表示赞赏!谢谢!
答案 0 :(得分:1)
您需要获取pPrintState的地址(JIT的地址,通过getPointerToFunction()或getPointerToNamedFunction())将此地址(作为整数)强制转换为pPrintState并作为参数传递。