GetElementPtr和C ++ API之间的混淆

时间:2015-04-03 02:21:33

标签: c++ llvm llvm-ir

查看GetElementPtr的文档:

http://llvm.org/docs/GetElementPtr.html

示例依赖于多个索引:第一个用于struct成员,第二个用于数组中的元素。这应该返回基指针

的偏移量

我正在试图找出使用C ++ API创建给定GetElementPtr指令的正确方法。不幸的是,CreateXXXGEP指令有几种变体,我认为参数“val”是索引之一。它的任何版本似乎都没有使用文档中的两个索引:http://llvm.org/docs/doxygen/html/classllvm_1_1IRBuilder.html

即使CreateStructGEP使用单个idx参数!

我想做一件非常简单的事情;我想要一个char缓冲区:

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

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

的函数

1 个答案:

答案 0 :(得分:0)

你可能正在寻找带有一系列Value *的变体。构造ConstantInts并将它们放在std :: vector中并传入它们。