我有一个test.c文件,它有这个函数调用:
functiontest(2,x);
我想删除此函数调用(使用llvm传递),当我尝试使用 removeFromParent()这样的函数时:
calledFunction1->removeFromParent();
这会导致LLVM产生以下错误:
在另一个模块中引用功能!
调用void @functiontest(i32 2,float%tmp15)LLVM ERROR:发现功能损坏,编译中止!
我也试过调用 eraseFromParent()但这会触发断言:
断言`use_empty()&& “当价值被破坏时,使用仍然存在!”'失败。
我更喜欢使用 removeFromParent()
任何想法有什么不对?
答案 0 :(得分:1)
首先,如果您发布一个演示问题的最小代码示例,那将非常有用。否则,我们只能猜测。但有些观察结果:
removeFromParent
?呼叫指令也必须删除,这是eraseFromParent
所做的。replaceAllUsesWith
?否则,使用粘在一起。