耗时 114514 分钟我终于把结构体的访问写出来了
测试代码
package main;
class sss{
var a:int;
var b:int;
var c:int;
}
fun main():int{
var a:sss;
a.c = 1;
printf("%d",a.c);
return 0;
}
输出
; ModuleID = 'main'
source_filename = "main"
%sss = type { i32 }
@0 = private unnamed_addr constant [3 x i8] c"%d\00", align 1
declare i32 @printf(ptr, ...)
define i32 @main() {
entry:
%a = alloca %sss, align 8
%0 = getelementptr inbounds %sss, ptr %a, i32 0, i32 0
%1 = load i32, ptr %0, align 4
store i32 1, ptr %0, align 4
%2 = getelementptr inbounds %sss, ptr %a, i32 0, i32 0
%3 = load ptr, ptr %2, align 8
%4 = call i32 (ptr, ...) @printf(ptr @0, ptr %3)
ret i32 0
}