如何识别linkonce_odr llvm函数?

时间:2014-03-11 10:14:25

标签: function llvm

我需要创建一个方法,只返回不是linkonce_odr的函数的名称。在下面的示例中,我希望返回:sc_main

示例:

define linkonce_odr void @_ZN7sc_core15sc_signal_in_ifIbED2Ev(%"class.sc_core::sc_signal_in_if.48"* %this, i8** %vtt) unnamed_addr nounwind uwtable inlinehint align 2

define linkonce_odr void @_ZN7sc_core15sc_signal_in_ifIbEC2Ev(%"class.sc_core::sc_signal_in_if.48"* %this, i8** %vtt) unnamed_addr nounwind uwtable align 2 

define i32 @sc_main(i32 %argc, i8** %argv) uwtable 

识别linkonce_odr函数的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

只需迭代所有函数,每次通过getLinkage()检查其链接,然后返回该方法返回的GlobalValue::LinkOnceODRLinkage的名称。