From 00b2fd1479aeac361a70cefe327e9893488c6389 Mon Sep 17 00:00:00 2001 From: xushiwei Date: Sat, 27 Apr 2024 08:17:46 +0800 Subject: [PATCH] fix TestNamedStruct --- cl/_testcgo/struct/out.ll | 8 ++++---- cl/_testdata/method/out.ll | 8 ++++---- cl/_testdata/ptrmthd/out.ll | 4 ++-- ssa/expr.go | 2 +- ssa/ssa_test.go | 4 ++-- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/cl/_testcgo/struct/out.ll b/cl/_testcgo/struct/out.ll index df59630f..5142a659 100644 --- a/cl/_testcgo/struct/out.ll +++ b/cl/_testcgo/struct/out.ll @@ -8,12 +8,12 @@ source_filename = "main" define void @"(*main.Foo).Print"(ptr %0) { _llgo_0: - %1 = getelementptr inbounds i1, ptr %0, i32 0, i32 1 + %1 = getelementptr inbounds %main.Foo, ptr %0, i32 0, i32 1 %2 = load i1, ptr %1, align 1 br i1 %2, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - %3 = getelementptr inbounds i32, ptr %0, i32 0, i32 0 + %3 = getelementptr inbounds %main.Foo, ptr %0, i32 0, i32 0 %4 = load i32, ptr %3, align 4 call void (ptr, ...) @printf(ptr @main.format, i32 %4) br label %_llgo_2 @@ -49,8 +49,8 @@ define void @main() { _llgo_0: call void @main.init() %0 = alloca %main.Foo, align 8 - %1 = getelementptr inbounds i32, ptr %0, i32 0, i32 0 - %2 = getelementptr inbounds i1, ptr %0, i32 0, i32 1 + %1 = getelementptr inbounds %main.Foo, ptr %0, i32 0, i32 0 + %2 = getelementptr inbounds %main.Foo, ptr %0, i32 0, i32 1 store i32 100, ptr %1, align 4 store i1 true, ptr %2, align 1 call void @"(*main.Foo).Print"(ptr %0) diff --git a/cl/_testdata/method/out.ll b/cl/_testdata/method/out.ll index 8d3f9f96..b4734045 100644 --- a/cl/_testdata/method/out.ll +++ b/cl/_testdata/method/out.ll @@ -4,16 +4,16 @@ source_filename = "main" @main.format = global ptr null @"main.init$guard" = global ptr null -define i64 @"(T).Add"(i64 %0, i64 %1) { +define i64 @"(main.T).Add"(i64 %0, i64 %1) { _llgo_0: %2 = add i64 %0, %1 ret i64 %2 } -define i64 @"(*T).Add"(ptr %0, i64 %1) { +define i64 @"(*main.T).Add"(ptr %0, i64 %1) { _llgo_0: %2 = load i64, ptr %0, align 4 - %3 = call i64 @"(T).Add"(i64 %2, i64 %1) + %3 = call i64 @"(main.T).Add"(i64 %2, i64 %1) ret i64 %3 } @@ -43,7 +43,7 @@ _llgo_2: ; preds = %_llgo_1, %_llgo_0 define void @main() { _llgo_0: call void @main.init() - %0 = call i64 @"(T).Add"(i64 1, i64 2) + %0 = call i64 @"(main.T).Add"(i64 1, i64 2) call void (ptr, ...) @printf(ptr @main.format, i64 %0) ret void } diff --git a/cl/_testdata/ptrmthd/out.ll b/cl/_testdata/ptrmthd/out.ll index 77665e9d..25fe6d7a 100644 --- a/cl/_testdata/ptrmthd/out.ll +++ b/cl/_testdata/ptrmthd/out.ll @@ -4,7 +4,7 @@ source_filename = "main" @main.format = global ptr null @"main.init$guard" = global ptr null -define void @"(*T).Print"(ptr %0, i64 %1) { +define void @"(*main.T).Print"(ptr %0, i64 %1) { _llgo_0: call void (ptr, ...) @printf(ptr %0, i64 %1) ret void @@ -36,7 +36,7 @@ _llgo_2: ; preds = %_llgo_1, %_llgo_0 define void @main() { _llgo_0: call void @main.init() - call void @"(*T).Print"(ptr @main.format, i64 100) + call void @"(*main.T).Print"(ptr @main.format, i64 100) ret void } diff --git a/ssa/expr.go b/ssa/expr.go index 7dac2e29..dca906b9 100644 --- a/ssa/expr.go +++ b/ssa/expr.go @@ -307,7 +307,7 @@ func (b Builder) FieldAddr(x Expr, idx int) Expr { tstruc := prog.Elem(x.Type) telem := prog.Field(tstruc, idx) pt := prog.Pointer(telem) - return Expr{llvm.CreateStructGEP(b.impl, telem.ll, x.impl, idx), pt} + return Expr{llvm.CreateStructGEP(b.impl, tstruc.ll, x.impl, idx), pt} } // The IndexAddr instruction yields the address of the element at diff --git a/ssa/ssa_test.go b/ssa/ssa_test.go index 1eb402cf..448515bf 100644 --- a/ssa/ssa_test.go +++ b/ssa/ssa_test.go @@ -88,9 +88,9 @@ func TestNamedStruct(t *testing.T) { assertPkg(t, pkg, `; ModuleID = 'foo/bar' source_filename = "foo/bar" -%Empty = type {} +%bar.Empty = type {} -@a = external global %Empty +@a = external global %bar.Empty `) }