我已阅读 this blog post , this documentation page和 this example ,但我仍然不明白如何使用 LLVM 的 IRBuilder 为非面向 C++ 的语言抛出基本异常。
根据我的理解,我必须:
llvm::Value
包含抛出的值。 该示例使用系统重绕函数 (
_Unwind_RaiseException
) 来抛出 C++ 异常,但我真的不明白如何使用我自己的提升函数(因为我只需要抛出一个对象指针)。我错过了什么?
最佳答案
简短的回答是 _Unwind_RaiseException
不是特定于 C++ 的函数。它来自 libunwind 库,允许抛出任何类型的异常。
更多详情请见 these blog posts .
关于exception - LLVM 异常抛出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14824906/