【问题标题】:Llvm C++ API pass Pointer to Function to another FunctionLlvm C++ API 将指向函数的指针传递给另一个函数
【发布时间】:2014-02-24 23:47:38
【问题描述】:

如何将指向函数的指针传递给另一个函数?我有这样的功能:

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 我制作了一个 llvm::GlobalVariable,其内部类型为转换后的 pPrintState。但是我应该传递什么作为初始化程序?还是我在这里完全走错了路?任何帮助表示赞赏!谢谢!

【问题讨论】:

    标签: c++ llvm


    【解决方案1】:

    您需要获取 pPrintState 的地址(JIT 的地址,通过 getPointerToFunction() 或 getPointerToNamedFunction())将此地址(作为整数)转换为 pPrintState 并作为参数传递。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-09
      • 1970-01-01
      • 1970-01-01
      • 2017-08-09
      • 1970-01-01
      相关资源
      最近更新 更多