Merge pull request #111 from xushiwei/q
closureStub: SetLinkage linkonce
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user