在 LLVM [C++] 中将 Int 转换为 APInt

Converting Int to APInt in LLVM [C++]

我试图通过 LLVM 构建语言(因为我必须这样做),但停留在简单的开始。我试图创建 int 常量,但是:

这是我的尝试:

Value * val = ConstantInt::get(Context, APInt(m_Lexer.numVal())

但答案是,没有 APInt 构造函数接受 32 位有符号整数。

我的问题很简单:

我试过本教程,但它只适用于双打,但我需要整数:https://llvm.org/docs/tutorial/MyFirstLanguageFrontend/LangImpl03.html

ConstantInt::get 的第一个参数是 llvm Type 而不是 context。试试这个

Value * val = ConstantInt::get(Type::getInt32Ty(Context), m_Lexer.numVal(), true);

其中最后一个布尔参数确定 val 表示有符号还是无符号 i32