GetElementPtr与C++ API的混淆

GetElementPtr与C++ API的混淆,c++,llvm,llvm-ir,C++,Llvm,Llvm Ir,查看GetElementPtr的文档: 示例依赖于多个索引:第一个用于结构成员,第二个用于数组中的元素。这可能会返回与基指针的偏移量 我试图找出用C++ API创建给定的GETelEntPtR指令的正确方法。不幸的是,CreateXXXGEP指令有几种,其中一个参数val我认为是索引之一。它的任何版本似乎都没有使用文档中的两个索引: 甚至CreateStructGEP也使用一个idx参数 我想做一件很简单的事情;我想要一个字符缓冲区: Value* vB = llvm::ConstantData

查看GetElementPtr的文档:

示例依赖于多个索引:第一个用于结构成员,第二个用于数组中的元素。这可能会返回与基指针的偏移量

我试图找出用C++ API创建给定的GETelEntPtR指令的正确方法。不幸的是,CreateXXXGEP指令有几种,其中一个参数val我认为是索引之一。它的任何版本似乎都没有使用文档中的两个索引:

甚至CreateStructGEP也使用一个idx参数

我想做一件很简单的事情;我想要一个字符缓冲区:

Value* vB = llvm::ConstantDataArray::GetString(...)

并使用指向数组的指针将其传递给另一个需要i8*的函数。

您可能正在寻找采用值*数组的变量。构造ConstantInts并将它们放入std::vector中,然后将它们传递进来