gpt4 book ai didi

c++ - LLVM 字符串值对象 : How can I retrieve the String from a Value?

转载 作者:可可西里 更新时间:2023-11-01 16:08:06 33 4
gpt4 key购买 nike

当从现有的 AST 构建 IR 时,我的 AST 有一些字符串值(在编译时它们是从 std::string 构建的)并且我想将它们安全地设置为 llvm::Value 用作表达式的一部分。

在这种情况下,我不需要在运行时绑定(bind)字符串,因为字符串值仅用于在编译时将内容解析为变量、函数或类(该语言不支持 native 字符串类型)。

什么是将我的字符串内容保持为 llvm::Value 并且仍然能够在编译的后期阶段检索它的最佳方法(当构建嵌套表达式时)?

更具体地说,如果我将 llvm::Value 设置为:

 llvm::Value* v = llvm::ConstantArray::get(llvmContext, myString.c_str());

如何安全地检索字符串值? llvm::ConstantArray 是包装字符串的合适方法吗?

最佳答案

是的,您应该在这里使用 ConstantArray。为了稍后检索值,只需使用 ConstantArray::getAsCString()。如果您打开了断言,它会在出现问题时断言(例如,您将尝试从没有零终止符的数组中获取字符串)。

关于c++ - LLVM 字符串值对象 : How can I retrieve the String from a Value?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8377735/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com