如何使用LLVM访问外部结构?

How to access external struct using LLVM?

本文关键字:结构 外部 访问 何使用 LLVM      更新时间:2023-10-16

在我的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,在这种情况下,声明一个空结构并使用指向该结构的指针是安全的。