如何使用 LLVM 访问外部结构?
How to access external struct using LLVM?
我在我的模块中有这个结构 ,在我的 C++ 实现中:
struct A {
int a;
};
如何创建这个接受 A 指针并更改它的函数?喜欢:
define void @func(%struct.A*) {
%2 = alloca %struct.A*, align 8
store %struct.A* %0, %struct.A** %2, align 8
...
}
还是不可能?我需要在我的模块中创建一个结构并更新外部结构吗?
是的,类型声明应该存在于它们使用的每个模块中。对于 C++ 也是一样的——如果你没有在源代码中声明它或者任何包含,你就不能使用 struct A
。
但是,您似乎在对代码中指向该结构的指针进行操作。 AFAIK,在这种情况下声明一个空结构并使用指向它的指针是安全的。
我在我的模块中有这个结构 ,在我的 C++ 实现中:
struct A {
int a;
};
如何创建这个接受 A 指针并更改它的函数?喜欢:
define void @func(%struct.A*) {
%2 = alloca %struct.A*, align 8
store %struct.A* %0, %struct.A** %2, align 8
...
}
还是不可能?我需要在我的模块中创建一个结构并更新外部结构吗?
是的,类型声明应该存在于它们使用的每个模块中。对于 C++ 也是一样的——如果你没有在源代码中声明它或者任何包含,你就不能使用 struct A
。
但是,您似乎在对代码中指向该结构的指针进行操作。 AFAIK,在这种情况下声明一个空结构并使用指向它的指针是安全的。