查看GetElementPtr
的文档:
http://llvm.org/docs/GetElementPtr.html
示例依赖于多个索引:第一个用于结构成员,第二个用于数组中的元素。据推测,这会返回基指针的偏移量
我正在尝试找出使用 C++ API 创建给定 GetElementPtr
指令的正确方法。不幸的是,CreateXXXGEP
指令有多种变体,其中一个参数“val”我认为是索引之一。它的任何版本似乎都没有像文档中那样使用两个索引:http://llvm.org/docs/doxygen/html/classllvm_1_1IRBuilder.html
甚至 CreateStructGEP
也使用单个 idx 参数!
我想做一件很简单的事;我想取一个字符缓冲区:
Value* vB = llvm::ConstantDataArray::GetString(...)
并使用指向数组的指针将其传递给另一个需要 i8*
最佳答案
您可能正在寻找采用 Value * 数组的变体。构造 ConstantInts 并将它们放入 std::vector 中并传入。
关于c++ - GetElementPtr 和 C++ API 之间的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29425359/