Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用llvmc+;定义结构成员变量的名称+;美国石油学会_Llvm_Llvm Ir_Llvm C++ Api - Fatal编程技术网

如何使用llvmc+;定义结构成员变量的名称+;美国石油学会

如何使用llvmc+;定义结构成员变量的名称+;美国石油学会,llvm,llvm-ir,llvm-c++-api,Llvm,Llvm Ir,Llvm C++ Api,我是LLVM的新手。我想创建一个如下所示的结构: struct abcd{ int a, int c, int d } 下面列出了我的源代码: structType at; at.setName("abcd"); std::vector<Type*> EltTys; EltTys->push_back(Type::getInt32Ty(getGlobalContext())); EltTys->push_back(Type::getInt32Ty

我是LLVM的新手。我想创建一个如下所示的结构:

struct abcd{
  int a,
  int c,
  int d
}
下面列出了我的源代码:

 structType at;
 at.setName("abcd");
 std::vector<Type*> EltTys; 
 EltTys->push_back(Type::getInt32Ty(getGlobalContext()));
 EltTys->push_back(Type::getInt32Ty(getGlobalContext()));
 EltTys->push_back(Type::getInt32Ty(getGlobalContext()));
 at.setBody(EltTys);
 ....

LLVM IR中的结构字段没有名称。如果要查找有关其字段的类型信息,请使用字段索引通过访问字段类型

我不完全清楚你想做的是什么意思
(struct abcd*)data->a=10。如果要插入对生成代码的字段访问,请创建说明

顺便说一句,您只需执行以下操作,而不必编写代码片段:

Type* int_type = Type::getInt32Ty(getGlobalContext());
StructType* at = StructType::create("abcd", int_type, int_type, int_type);

因为
StructType
已经有了。

谢谢你,感谢你的帮助,这对我很有帮助!您能否提供一个关于如何使用LLVMStructCreateNamed()和LLVMStructSetBody()函数执行此操作的示例?短暂性脑缺血发作
Type* int_type = Type::getInt32Ty(getGlobalContext());
StructType* at = StructType::create("abcd", int_type, int_type, int_type);