GetElementPtr和C++API之间的混淆

Confusion between GetElementPtr and C++ API

本文关键字:之间 C++API GetElementPtr      更新时间:2023-10-16

查看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中,然后将其传入。