在为llvm编写新的前端时尝试/抛出块

时间:2010-02-06 16:52:06

标签: c++ exception llvm

llvm-config-fno-exceptions放入LDFLAGS中以链接llvm本身。假设这意味着我不能在与llvm编译器链接的代码(例如新语言前端)中使用普通的C ++ try / throw块吗?我不是在谈论编译器生成的程序,而是编译器本身。我不想干涉llvm-config的输出,我确信-fno-exceptions是有原因的。

如果我想为LLVM(对于我正在编写的玩具语言)编写一个新的语言前端,它与其他LLVM代码链接,是否有一种标准的方法来处理前端代码中的异常?

4 个答案:

答案 0 :(得分:1)

仅仅因为LLVM代码不使用异常并不意味着LLVM环境没有异常处理机制......我认为你在这里感到困惑。

答案 1 :(得分:1)

LLVM bug 815有基本原理:生成的EH代码约占整个二进制代码的10-20%。它还指出代码的某些部分存在例外情况。因此,假设您的代码也可以使用异常是合理的。

答案 2 :(得分:0)

LLVM documentation应告诉您需要了解的有关如何使用例外的信息;我不知道为什么指定了-fno-exceptions,或者你是否可以删除它。

答案 3 :(得分:0)

在源代码级别Makefile.am中向LDFLAGS添加-fexceptions有效,但我不确定这是否是正确的做法。