C++ llvm::Argument“;“入境”;getelementptr

C++ llvm::Argument“;“入境”;getelementptr,c++,llvm-c++-api,C++,Llvm C++ Api,我正在迁移一个旧的代码库,并将一些操作迁移到一个新函数(f)中 在旧版本中,我们创建一个字符串(char数组)并将其传递给函数(g)。在新版本中,创建字符串并将其传递给调用(g)的函数(f) 因此,char数组(str)通过一条“inbound”getelementptr指令传递给(g): auto ptr=llvm::ConstantExpr::getInBoundsGetElementPtr(llvm::Type::getInt8Ty(context),str,get\u elemptr\u

我正在迁移一个旧的代码库,并将一些操作迁移到一个新函数(f)中

在旧版本中,我们创建一个字符串(char数组)并将其传递给函数(g)。在新版本中,创建字符串并将其传递给调用(g)的函数(f)

因此,char数组(str)通过一条“inbound”getelementptr指令传递给(g):

auto ptr=llvm::ConstantExpr::getInBoundsGetElementPtr(llvm::Type::getInt8Ty(context),str,get\u elemptr\u args);
在新版本中,我没有与(f)中的(str)对应的llvm::Constant*,因为它是作为llvm::Argument*传递的。如何使用llvm::参数*调用getInBoundGetElementPtr

//创建字符串globalvariable并调用(f)
auto str=add_int8Array_global_变量(名称,llvm::GlobalValue::CommonLinkage);
/* ... */
调用函数(“f”,llvm::FunctionType::get(llvm::Type::getInt32Ty(context),llvm::Type::getInt8PtrTy(context)),{str});
//在f
llvm::Function::arg_迭代器args=f->arg_begin();
自动str=args++;
自动ptr=???//这里,getInBoundElementPtr需要一个常量*,而不是参数*或值*。
//使用字符串作为参数调用(g)。
我应该简单地使用常规的getElementPtr指令吗