从现有的 AST 构建 IR 时,我的 AST 有一些字符串值(在编译时它们是从 构建的std::string
),我想安全地设置它们llvm::Value
以用作表达式的一部分。
在这种情况下,我不需要在运行时绑定字符串,因为字符串值仅用于在编译时将内容解析为变量、函数或类(该语言不支持本机字符串类型)。
保持我的字符串内容不变llvm::Value
并且仍然能够在编译的后期阶段(构建嵌套表达式时)检索它的最佳方法是什么?
更具体地说,如果我设置llvm::Value
:
llvm::Value* v = llvm::ConstantArray::get(llvmContext, myString.c_str());
如何安全地检索字符串值?llvm::ConstantArray
包装字符串的适当方法是什么?