Exception LLVM异常抛出

Exception LLVM异常抛出,exception,llvm,Exception,Llvm,我已经读了,还有,但是我仍然不明白如何使用LLVM的IRBuilder为非C++语言抛出一个基本异常 根据我的理解,我必须: 创建一个包含抛出值的llvm::Value 调用“函数”,将抛出的值传递给它。此函数将不会返回 示例是使用系统重绕函数( In unWrnRasieExpAs/Cuth>),以抛出C++异常,而我不真正理解如何使用自己的提升函数(因为我只需要抛出对象指针)。我错过了什么?因为你不想使用现有的C++异常处理基础结构,你需要复制它的语言的部分。 您可以在中使用C unwi

我已经读了,还有,但是我仍然不明白如何使用LLVM的IRBuilder为非C++语言抛出一个基本异常

根据我的理解,我必须:

  • 创建一个包含抛出值的
    llvm::Value
  • 调用“函数”,将抛出的值传递给它。此函数将不会返回

示例是使用系统重绕函数(<代码> In unWrnRasieExpAs/Cuth>),以抛出C++异常,而我不真正理解如何使用自己的提升函数(因为我只需要抛出对象指针)。我错过了什么?

因为你不想使用现有的C++异常处理基础结构,你需要复制它的语言的部分。


您可以在中使用C unwinder的实现(或者在中使用更复杂的实现),并首先调用中的unwinder。

简而言之,
\u Unwind\u RaiseException
不是C++特有的函数。它来自libunwind库,允许抛出任何类型的异常


有关更多详细信息,请访问。

所有这些链接现在都已失效…