c.GoDeferData; llgo/ssa: rm excepKey
This commit is contained in:
@@ -1,12 +1,13 @@
|
||||
package main
|
||||
|
||||
import "github.com/goplus/llgo/c"
|
||||
import "github.com/goplus/llgo/internal/runtime/c"
|
||||
|
||||
func f(s string) bool {
|
||||
return len(s) > 2
|
||||
}
|
||||
|
||||
func main() {
|
||||
c.GoDeferData()
|
||||
if s := "hello"; f(s) {
|
||||
defer c.Printf(c.Str("%s\n"), c.AllocaCStr(s))
|
||||
} else {
|
||||
|
||||
@@ -52,6 +52,7 @@ func TestMakeInterface(t *testing.T) {
|
||||
b := fn.MakeBody(1)
|
||||
b.MakeInterface(prog.Any(), prog.IntVal(100, prog.Int64()))
|
||||
b.MakeInterface(prog.Any(), prog.FloatVal(100, prog.Float64()))
|
||||
b.DeferData()
|
||||
b.Return()
|
||||
}
|
||||
|
||||
|
||||
@@ -76,7 +76,6 @@ func (b Builder) Siglongjmp(jb, retval Expr) {
|
||||
|
||||
const (
|
||||
deferKey = "__llgo_defer"
|
||||
excepKey = "__llgo_ex"
|
||||
)
|
||||
|
||||
func (p Function) deferInitBuilder() (b Builder, next BasicBlock) {
|
||||
@@ -121,10 +120,6 @@ func (b Builder) deferKey() Expr {
|
||||
return b.Load(b.Pkg.newKey(deferKey).Expr)
|
||||
}
|
||||
|
||||
func (b Builder) excepKey() Expr {
|
||||
return b.Load(b.Pkg.newKey(excepKey).Expr)
|
||||
}
|
||||
|
||||
const (
|
||||
// 0: addr sigjmpbuf
|
||||
// 1: bits uintptr
|
||||
|
||||
@@ -621,7 +621,6 @@ func (p Package) afterBuilder() Builder {
|
||||
// AfterInit is called after the package is initialized (init all packages that depends on).
|
||||
func (p Package) AfterInit(b Builder, ret BasicBlock) {
|
||||
p.keyInit(deferKey)
|
||||
p.keyInit(excepKey)
|
||||
doAfterb := p.afterb != nil
|
||||
doPyLoadModSyms := p.pyHasModSyms()
|
||||
if doAfterb || doPyLoadModSyms {
|
||||
|
||||
Reference in New Issue
Block a user