我有一个test.c文件,其中包含以下函数调用:

functiontest(2,x);

我想删除此函数调用(通过llvm传递),并且当我尝试使用 removeFromParent()函数时,如下所示:
calledFunction1->removeFromParent();

这会导致LLVM产生以下错误:



我还尝试了调用 DeleteFromParent(),但这会触发一个断言:



我更喜欢使用 removeFromParent()

任何想法有什么问题吗?

最佳答案

首先,如果您可以发布一个最小的代码示例来演示您的问题,那将非常有帮助。否则,我们只能猜测。但是,一些观察结果:

  • 为什么您更喜欢removeFromParent?调用指令也必须删除,这就是eraseFromParent所做的。
  • 在删除/删除之前,您是否致电replaceAllUsesWith?否则,请坚持使用。
  • 您是否删除了函数或调用指令?这可以解释第一个错误消息。
  • 关于c++ - LLVM错误:发现功能中断,编译中止!在removeFromParent()之后,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32563849/

    10-13 08:22