Merge pull request #111 from xushiwei/q

closureStub: SetLinkage linkonce
This commit is contained in:
xushiwei
2024-05-06 00:20:27 +08:00
committed by GitHub
4 changed files with 5 additions and 4 deletions

View File

@@ -55,7 +55,7 @@ _llgo_0:
declare void @"github.com/goplus/llgo/internal/runtime.init"()
define void @__llgo_stub.main.print(ptr %0, ptr %1) {
define linkonce void @__llgo_stub.main.print(ptr %0, ptr %1) {
_llgo_0:
call void @main.print(ptr %1)
ret void

View File

@@ -163,7 +163,7 @@ declare void @"github.com/goplus/llgo/internal/runtime.init"()
declare i32 @rand()
define i32 @__llgo_stub.rand(ptr %0) {
define linkonce i32 @__llgo_stub.rand(ptr %0) {
_llgo_0:
%1 = call i32 @rand()
ret i32 %1

View File

@@ -38,7 +38,7 @@ import (
func init() {
cl.SetDebug(cl.DbgFlagAll)
llssa.Initialize(llssa.InitAll)
llssa.Initialize(llssa.InitAll | llssa.InitNative)
llssa.SetDebug(llssa.DbgFlagAll)
}

View File

@@ -21,8 +21,8 @@ import (
"go/types"
"log"
"github.com/goplus/llgo/internal/typeutil"
"github.com/goplus/llvm"
"golang.org/x/tools/go/types/typeutil"
)
const (
@@ -381,6 +381,7 @@ func (p Package) closureStub(b Builder, t *types.Struct, v Expr) Expr {
ctx := types.NewParam(token.NoPos, nil, ClosureCtx, types.Typ[types.UnsafePointer])
sig = FuncAddCtx(ctx, sig)
fn := p.NewFunc(ClosureStub+name, sig, InC)
fn.impl.SetLinkage(llvm.LinkOnceAnyLinkage)
args := make([]Expr, n)
for i := 0; i < n; i++ {
args[i] = fn.Param(i + 1)