首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在gimple中插入函数调用

在gimple中插入函数调用
EN

Stack Overflow用户
提问于 2014-09-10 21:20:25
回答 1查看 790关注 0票数 2

我想不出下一步该怎么做。

我有以下代码:

test.cpp

代码语言:javascript
复制
#include <stdio.h>

void
function(void) {printf("Hellow ");}

int main(void) {
    printf("World\n");
    return 0;
}

我想把它转化成下一个:

代码语言:javascript
复制
#include <stdio.h>

void
function(void) {printf("Hellow ");}

int main(void) {
    function();
    printf("World\n");
    return 0;
}

用gcc插件。

在我的插件中不起作用的代码是:

代码语言:javascript
复制
...
tree function_fn;
tree function_fn_type;

function_fn_type=build_function_type_list(void_type_node, void_type_node, NULL_TREE);
function_fn = build_fn_decl ("function", function_fn_type);

gimple call = gimple_build_call (funcion_fn, 0);
gsi_insert_before (&gsi, call, GSI_NEW_STMT);
...

然后,当我用插件编译test.cpp时,我会收到下一个错误消息:

/tmp/cc2VRszt.o:函数main': test.cpp:(.text+0x60): Undefined reference to函数‘

有人能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-25 01:18:07

您正在构建函数声明,并根据该声明插入对函数的调用,但除非您在链接到的另一个翻译单元中定义了该函数,否则它将无法解决。如果您想要一个插件在同一个翻译单元中插入一个定义,就像在您的示例中一样,为前端开发人员提供的指南将是一个很好的开始:

http://www.tldp.org/HOWTO/GCC-Frontend-HOWTO-7.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25775292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档