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
并转换到字符串数组。