在 LLVM 中将 ConstantDataArray 转换为 i8*
Cast ConstantDataArray to i8* in LLVM
简单问题:"I have a ConstantDataArray of type [7 x i8]
, how can I cast it to have the i8*
type?"
编辑
更多上下文:
ConstantDataArray 创建如下:
ConstantDataArray::getString(Fn->getContext(), "Hello", true);
我创建了一个 LLVM:Function,它有一个类型来自 Type::getInt8PtrTy(getGlobalContext())
的参数,我想将数组转换为这种类型,所以我可以将它作为参数传递。
我正在开发通行证
您可以使用 IRBuilder
的 CreateGlobalStringPtr
,这是一个方便的包装器,用于创建全局字符串常量并返回指向其第一个字符的 i8*
。
简单问题:"I have a ConstantDataArray of type [7 x i8]
, how can I cast it to have the i8*
type?"
编辑 更多上下文:
ConstantDataArray 创建如下:
ConstantDataArray::getString(Fn->getContext(), "Hello", true);
我创建了一个 LLVM:Function,它有一个类型来自 Type::getInt8PtrTy(getGlobalContext())
的参数,我想将数组转换为这种类型,所以我可以将它作为参数传递。
我正在开发通行证
您可以使用 IRBuilder
的 CreateGlobalStringPtr
,这是一个方便的包装器,用于创建全局字符串常量并返回指向其第一个字符的 i8*
。