C++ 在LLVM中将ConstantDataArray强制转换为i8*

C++ 在LLVM中将ConstantDataArray强制转换为i8*,c++,llvm,C++,Llvm,简单问题:“我有一个类型为[7 x i8]的常量数据数组,如何将其转换为i8*类型?” 编辑 更多背景: ConstantDataArray创建如下: ConstantDataArray::getString(Fn->getContext(),“Hello”,true) 我创建了一个LLVM:函数,该函数的参数类型来自type::getInt8PtrTy(getGlobalContext()),我想将数组强制转换为这种类型,以便将其作为参数传递 我正在开发一个pass您可以使用IRBuilder

简单问题:“我有一个类型为
[7 x i8]
的常量数据数组,如何将其转换为
i8*
类型?”

编辑 更多背景:

ConstantDataArray创建如下:

ConstantDataArray::getString(Fn->getContext(),“Hello”,true)

我创建了一个LLVM:函数,该函数的参数类型来自
type::getInt8PtrTy(getGlobalContext())
,我想将数组强制转换为这种类型,以便将其作为参数传递


我正在开发一个pass

您可以使用
IRBuilder
,它是一个方便的包装器,用于创建一个全局字符串常量并返回指向其第一个字符的
i8*

您能否显示更多的上下文,如示例声明,关于你的问题中的IR?我已经更新了问题,因为你的问题缺少很多上下文,我不确定这是否会有帮助,但可能会满足你的需要?@tuple_cat看起来很有希望,我会尝试一下。我同意@tuple_cat,这应该会发出正确的
getelementptr
并转换到字符串数组。