ssa: fix TypeAssert check null
This commit is contained in:
85
_demo/ifaceconv/main.go
Normal file
85
_demo/ifaceconv/main.go
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
// Tests of interface conversions and type assertions.
|
||||||
|
|
||||||
|
type I0 interface {
|
||||||
|
}
|
||||||
|
type I1 interface {
|
||||||
|
f()
|
||||||
|
}
|
||||||
|
type I2 interface {
|
||||||
|
f()
|
||||||
|
g()
|
||||||
|
}
|
||||||
|
|
||||||
|
type C0 struct{}
|
||||||
|
type C1 struct{}
|
||||||
|
|
||||||
|
func (C1) f() {}
|
||||||
|
|
||||||
|
type C2 struct{}
|
||||||
|
|
||||||
|
func (C2) f() {}
|
||||||
|
func (C2) g() {}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
var i0 I0
|
||||||
|
var i1 I1
|
||||||
|
var i2 I2
|
||||||
|
|
||||||
|
// Nil always causes a type assertion to fail, even to the
|
||||||
|
// same type.
|
||||||
|
if _, ok := i0.(I0); ok {
|
||||||
|
panic("nil i0.(I0) succeeded")
|
||||||
|
}
|
||||||
|
if _, ok := i1.(I1); ok {
|
||||||
|
panic("nil i1.(I1) succeeded")
|
||||||
|
}
|
||||||
|
if _, ok := i2.(I2); ok {
|
||||||
|
panic("nil i2.(I2) succeeded")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Conversions can't fail, even with nil.
|
||||||
|
_ = I0(i0)
|
||||||
|
|
||||||
|
_ = I0(i1)
|
||||||
|
_ = I1(i1)
|
||||||
|
|
||||||
|
_ = I0(i2)
|
||||||
|
_ = I1(i2)
|
||||||
|
_ = I2(i2)
|
||||||
|
|
||||||
|
// Non-nil type assertions pass or fail based on the concrete type.
|
||||||
|
i1 = C1{}
|
||||||
|
if _, ok := i1.(I0); !ok {
|
||||||
|
panic("C1 i1.(I0) failed")
|
||||||
|
}
|
||||||
|
if _, ok := i1.(I1); !ok {
|
||||||
|
panic("C1 i1.(I1) failed")
|
||||||
|
}
|
||||||
|
if _, ok := i1.(I2); ok {
|
||||||
|
panic("C1 i1.(I2) succeeded")
|
||||||
|
}
|
||||||
|
|
||||||
|
i1 = C2{}
|
||||||
|
if _, ok := i1.(I0); !ok {
|
||||||
|
panic("C2 i1.(I0) failed")
|
||||||
|
}
|
||||||
|
if _, ok := i1.(I1); !ok {
|
||||||
|
panic("C2 i1.(I1) failed")
|
||||||
|
}
|
||||||
|
if _, ok := i1.(I2); !ok {
|
||||||
|
panic("C2 i1.(I2) failed")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Conversions can't fail.
|
||||||
|
i1 = C1{}
|
||||||
|
if I0(i1) == nil {
|
||||||
|
panic("C1 I0(i1) was nil")
|
||||||
|
}
|
||||||
|
if I1(i1) == nil {
|
||||||
|
panic("C1 I1(i1) was nil")
|
||||||
|
}
|
||||||
|
|
||||||
|
println("pass")
|
||||||
|
}
|
||||||
@@ -98,7 +98,7 @@ _llgo_2: ; preds = %_llgo_1, %_llgo_0
|
|||||||
define void @"github.com/goplus/llgo/cl/_testgo/ifaceconv.main"() {
|
define void @"github.com/goplus/llgo/cl/_testgo/ifaceconv.main"() {
|
||||||
_llgo_0:
|
_llgo_0:
|
||||||
%0 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.I0", align 8
|
%0 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.I0", align 8
|
||||||
br i1 true, label %_llgo_23, label %_llgo_24
|
br i1 false, label %_llgo_23, label %_llgo_24
|
||||||
|
|
||||||
_llgo_1: ; preds = %_llgo_25
|
_llgo_1: ; preds = %_llgo_25
|
||||||
%1 = load ptr, ptr @_llgo_string, align 8
|
%1 = load ptr, ptr @_llgo_string, align 8
|
||||||
@@ -112,7 +112,7 @@ _llgo_1: ; preds = %_llgo_25
|
|||||||
_llgo_2: ; preds = %_llgo_25
|
_llgo_2: ; preds = %_llgo_25
|
||||||
%5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer)
|
%5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer)
|
||||||
%6 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.I1", align 8
|
%6 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.I1", align 8
|
||||||
br i1 true, label %_llgo_26, label %_llgo_27
|
br i1 false, label %_llgo_26, label %_llgo_27
|
||||||
|
|
||||||
_llgo_3: ; preds = %_llgo_28
|
_llgo_3: ; preds = %_llgo_28
|
||||||
%7 = load ptr, ptr @_llgo_string, align 8
|
%7 = load ptr, ptr @_llgo_string, align 8
|
||||||
@@ -126,7 +126,7 @@ _llgo_3: ; preds = %_llgo_28
|
|||||||
_llgo_4: ; preds = %_llgo_28
|
_llgo_4: ; preds = %_llgo_28
|
||||||
%11 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer)
|
%11 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer)
|
||||||
%12 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.I2", align 8
|
%12 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.I2", align 8
|
||||||
br i1 true, label %_llgo_29, label %_llgo_30
|
br i1 false, label %_llgo_29, label %_llgo_30
|
||||||
|
|
||||||
_llgo_5: ; preds = %_llgo_31
|
_llgo_5: ; preds = %_llgo_31
|
||||||
%13 = load ptr, ptr @_llgo_string, align 8
|
%13 = load ptr, ptr @_llgo_string, align 8
|
||||||
@@ -173,125 +173,127 @@ _llgo_7: ; preds = %_llgo_34
|
|||||||
_llgo_8: ; preds = %_llgo_34
|
_llgo_8: ; preds = %_llgo_34
|
||||||
%41 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %33)
|
%41 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %33)
|
||||||
%42 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.I1", align 8
|
%42 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.I1", align 8
|
||||||
|
%43 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %33, 1
|
||||||
br i1 true, label %_llgo_35, label %_llgo_36
|
br i1 true, label %_llgo_35, label %_llgo_36
|
||||||
|
|
||||||
_llgo_9: ; preds = %_llgo_37
|
_llgo_9: ; preds = %_llgo_37
|
||||||
%43 = load ptr, ptr @_llgo_string, align 8
|
%44 = load ptr, ptr @_llgo_string, align 8
|
||||||
%44 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
%45 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
||||||
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @12, i64 17 }, ptr %44, align 8
|
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @12, i64 17 }, ptr %45, align 8
|
||||||
%45 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %43, 0
|
%46 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %44, 0
|
||||||
%46 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %45, ptr %44, 1
|
%47 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %46, ptr %45, 1
|
||||||
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %46)
|
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %47)
|
||||||
unreachable
|
unreachable
|
||||||
|
|
||||||
_llgo_10: ; preds = %_llgo_37
|
_llgo_10: ; preds = %_llgo_37
|
||||||
%47 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %33)
|
%48 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %33)
|
||||||
%48 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.I2", align 8
|
%49 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.I2", align 8
|
||||||
%49 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %48, ptr %47)
|
%50 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %49, ptr %48)
|
||||||
br i1 %49, label %_llgo_38, label %_llgo_39
|
br i1 %50, label %_llgo_38, label %_llgo_39
|
||||||
|
|
||||||
_llgo_11: ; preds = %_llgo_40
|
_llgo_11: ; preds = %_llgo_40
|
||||||
%50 = load ptr, ptr @_llgo_string, align 8
|
%51 = load ptr, ptr @_llgo_string, align 8
|
||||||
%51 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
%52 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
||||||
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @13, i64 20 }, ptr %51, align 8
|
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @13, i64 20 }, ptr %52, align 8
|
||||||
%52 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %50, 0
|
%53 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %51, 0
|
||||||
%53 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %52, ptr %51, 1
|
%54 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %53, ptr %52, 1
|
||||||
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %53)
|
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %54)
|
||||||
unreachable
|
unreachable
|
||||||
|
|
||||||
_llgo_12: ; preds = %_llgo_40
|
_llgo_12: ; preds = %_llgo_40
|
||||||
%54 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.C2", align 8
|
%55 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.C2", align 8
|
||||||
%55 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0)
|
%56 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0)
|
||||||
store %"github.com/goplus/llgo/cl/_testgo/ifaceconv.C2" zeroinitializer, ptr %55, align 1
|
store %"github.com/goplus/llgo/cl/_testgo/ifaceconv.C2" zeroinitializer, ptr %56, align 1
|
||||||
%56 = load ptr, ptr @"github.com/goplus/llgo/cl/_testgo/ifaceconv.iface$brpgdLtIeRlPi8QUoTgPCXzlehUkncg7v9aITo-GsF4", align 8
|
%57 = load ptr, ptr @"github.com/goplus/llgo/cl/_testgo/ifaceconv.iface$brpgdLtIeRlPi8QUoTgPCXzlehUkncg7v9aITo-GsF4", align 8
|
||||||
%57 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %56, ptr %54)
|
%58 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %57, ptr %55)
|
||||||
%58 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %57, 0
|
%59 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %58, 0
|
||||||
%59 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %58, ptr %55, 1
|
%60 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %59, ptr %56, 1
|
||||||
%60 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %59)
|
%61 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %60)
|
||||||
%61 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.I0", align 8
|
%62 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.I0", align 8
|
||||||
%62 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %61, ptr %60)
|
%63 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %62, ptr %61)
|
||||||
br i1 %62, label %_llgo_41, label %_llgo_42
|
br i1 %63, label %_llgo_41, label %_llgo_42
|
||||||
|
|
||||||
_llgo_13: ; preds = %_llgo_43
|
_llgo_13: ; preds = %_llgo_43
|
||||||
%63 = load ptr, ptr @_llgo_string, align 8
|
%64 = load ptr, ptr @_llgo_string, align 8
|
||||||
%64 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
%65 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
||||||
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @16, i64 17 }, ptr %64, align 8
|
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @16, i64 17 }, ptr %65, align 8
|
||||||
%65 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %63, 0
|
%66 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %64, 0
|
||||||
%66 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %65, ptr %64, 1
|
%67 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %66, ptr %65, 1
|
||||||
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %66)
|
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %67)
|
||||||
unreachable
|
unreachable
|
||||||
|
|
||||||
_llgo_14: ; preds = %_llgo_43
|
_llgo_14: ; preds = %_llgo_43
|
||||||
%67 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %59)
|
%68 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %60)
|
||||||
%68 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.I1", align 8
|
%69 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.I1", align 8
|
||||||
|
%70 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %60, 1
|
||||||
br i1 true, label %_llgo_44, label %_llgo_45
|
br i1 true, label %_llgo_44, label %_llgo_45
|
||||||
|
|
||||||
_llgo_15: ; preds = %_llgo_46
|
_llgo_15: ; preds = %_llgo_46
|
||||||
%69 = load ptr, ptr @_llgo_string, align 8
|
%71 = load ptr, ptr @_llgo_string, align 8
|
||||||
%70 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
%72 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
||||||
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 17 }, ptr %70, align 8
|
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 17 }, ptr %72, align 8
|
||||||
%71 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %69, 0
|
%73 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %71, 0
|
||||||
%72 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %71, ptr %70, 1
|
%74 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %73, ptr %72, 1
|
||||||
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %72)
|
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %74)
|
||||||
unreachable
|
unreachable
|
||||||
|
|
||||||
_llgo_16: ; preds = %_llgo_46
|
_llgo_16: ; preds = %_llgo_46
|
||||||
%73 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %59)
|
%75 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %60)
|
||||||
%74 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.I2", align 8
|
%76 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.I2", align 8
|
||||||
%75 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %74, ptr %73)
|
%77 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %76, ptr %75)
|
||||||
br i1 %75, label %_llgo_47, label %_llgo_48
|
br i1 %77, label %_llgo_47, label %_llgo_48
|
||||||
|
|
||||||
_llgo_17: ; preds = %_llgo_49
|
_llgo_17: ; preds = %_llgo_49
|
||||||
%76 = load ptr, ptr @_llgo_string, align 8
|
%78 = load ptr, ptr @_llgo_string, align 8
|
||||||
%77 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
%79 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
||||||
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 17 }, ptr %77, align 8
|
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 17 }, ptr %79, align 8
|
||||||
%78 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %76, 0
|
%80 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %78, 0
|
||||||
%79 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %78, ptr %77, 1
|
%81 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %80, ptr %79, 1
|
||||||
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %79)
|
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %81)
|
||||||
unreachable
|
unreachable
|
||||||
|
|
||||||
_llgo_18: ; preds = %_llgo_49
|
_llgo_18: ; preds = %_llgo_49
|
||||||
%80 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.C1", align 8
|
%82 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.C1", align 8
|
||||||
%81 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0)
|
%83 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0)
|
||||||
store %"github.com/goplus/llgo/cl/_testgo/ifaceconv.C1" zeroinitializer, ptr %81, align 1
|
store %"github.com/goplus/llgo/cl/_testgo/ifaceconv.C1" zeroinitializer, ptr %83, align 1
|
||||||
%82 = load ptr, ptr @"github.com/goplus/llgo/cl/_testgo/ifaceconv.iface$brpgdLtIeRlPi8QUoTgPCXzlehUkncg7v9aITo-GsF4", align 8
|
%84 = load ptr, ptr @"github.com/goplus/llgo/cl/_testgo/ifaceconv.iface$brpgdLtIeRlPi8QUoTgPCXzlehUkncg7v9aITo-GsF4", align 8
|
||||||
%83 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %82, ptr %80)
|
%85 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %84, ptr %82)
|
||||||
%84 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %83, 0
|
%86 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %85, 0
|
||||||
%85 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %84, ptr %81, 1
|
%87 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %86, ptr %83, 1
|
||||||
%86 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %85)
|
%88 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %87)
|
||||||
%87 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %85, 1
|
%89 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %87, 1
|
||||||
%88 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %86, 0
|
%90 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %88, 0
|
||||||
%89 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %88, ptr %87, 1
|
%91 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %90, ptr %89, 1
|
||||||
%90 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %89, %"github.com/goplus/llgo/runtime/internal/runtime.eface" zeroinitializer)
|
%92 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %91, %"github.com/goplus/llgo/runtime/internal/runtime.eface" zeroinitializer)
|
||||||
br i1 %90, label %_llgo_19, label %_llgo_20
|
br i1 %92, label %_llgo_19, label %_llgo_20
|
||||||
|
|
||||||
_llgo_19: ; preds = %_llgo_18
|
_llgo_19: ; preds = %_llgo_18
|
||||||
%91 = load ptr, ptr @_llgo_string, align 8
|
%93 = load ptr, ptr @_llgo_string, align 8
|
||||||
%92 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
%94 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
||||||
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 17 }, ptr %92, align 8
|
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 17 }, ptr %94, align 8
|
||||||
%93 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %91, 0
|
%95 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %93, 0
|
||||||
%94 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %93, ptr %92, 1
|
%96 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %95, ptr %94, 1
|
||||||
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %94)
|
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %96)
|
||||||
unreachable
|
unreachable
|
||||||
|
|
||||||
_llgo_20: ; preds = %_llgo_18
|
_llgo_20: ; preds = %_llgo_18
|
||||||
%95 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %85)
|
%97 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %87)
|
||||||
%96 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %85, 1
|
%98 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %87, 1
|
||||||
%97 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %95, 0
|
%99 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %97, 0
|
||||||
%98 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %97, ptr %96, 1
|
%100 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %99, ptr %98, 1
|
||||||
%99 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer)
|
%101 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer)
|
||||||
%100 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %99, 0
|
%102 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %101, 0
|
||||||
%101 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %100, ptr null, 1
|
%103 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %102, ptr null, 1
|
||||||
%102 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %98, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %101)
|
%104 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %100, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %103)
|
||||||
br i1 %102, label %_llgo_21, label %_llgo_22
|
br i1 %104, label %_llgo_21, label %_llgo_22
|
||||||
|
|
||||||
_llgo_21: ; preds = %_llgo_20
|
_llgo_21: ; preds = %_llgo_20
|
||||||
%103 = load ptr, ptr @_llgo_string, align 8
|
%105 = load ptr, ptr @_llgo_string, align 8
|
||||||
%104 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
%106 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
||||||
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @20, i64 17 }, ptr %104, align 8
|
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @20, i64 17 }, ptr %106, align 8
|
||||||
%105 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %103, 0
|
%107 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %105, 0
|
||||||
%106 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %105, ptr %104, 1
|
%108 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %107, ptr %106, 1
|
||||||
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %106)
|
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %108)
|
||||||
unreachable
|
unreachable
|
||||||
|
|
||||||
_llgo_22: ; preds = %_llgo_20
|
_llgo_22: ; preds = %_llgo_20
|
||||||
@@ -306,10 +308,10 @@ _llgo_24: ; preds = %_llgo_0
|
|||||||
br label %_llgo_25
|
br label %_llgo_25
|
||||||
|
|
||||||
_llgo_25: ; preds = %_llgo_24, %_llgo_23
|
_llgo_25: ; preds = %_llgo_24, %_llgo_23
|
||||||
%107 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } [ { %"github.com/goplus/llgo/runtime/internal/runtime.eface" zeroinitializer, i1 true }, %_llgo_23 ], [ zeroinitializer, %_llgo_24 ]
|
%109 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } [ { %"github.com/goplus/llgo/runtime/internal/runtime.eface" zeroinitializer, i1 true }, %_llgo_23 ], [ zeroinitializer, %_llgo_24 ]
|
||||||
%108 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %107, 0
|
%110 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %109, 0
|
||||||
%109 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %107, 1
|
%111 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %109, 1
|
||||||
br i1 %109, label %_llgo_1, label %_llgo_2
|
br i1 %111, label %_llgo_1, label %_llgo_2
|
||||||
|
|
||||||
_llgo_26: ; preds = %_llgo_2
|
_llgo_26: ; preds = %_llgo_2
|
||||||
br label %_llgo_28
|
br label %_llgo_28
|
||||||
@@ -318,10 +320,10 @@ _llgo_27: ; preds = %_llgo_2
|
|||||||
br label %_llgo_28
|
br label %_llgo_28
|
||||||
|
|
||||||
_llgo_28: ; preds = %_llgo_27, %_llgo_26
|
_llgo_28: ; preds = %_llgo_27, %_llgo_26
|
||||||
%110 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ { %"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer, i1 true }, %_llgo_26 ], [ zeroinitializer, %_llgo_27 ]
|
%112 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ { %"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer, i1 true }, %_llgo_26 ], [ zeroinitializer, %_llgo_27 ]
|
||||||
%111 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %110, 0
|
%113 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %112, 0
|
||||||
%112 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %110, 1
|
%114 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %112, 1
|
||||||
br i1 %112, label %_llgo_3, label %_llgo_4
|
br i1 %114, label %_llgo_3, label %_llgo_4
|
||||||
|
|
||||||
_llgo_29: ; preds = %_llgo_4
|
_llgo_29: ; preds = %_llgo_4
|
||||||
br label %_llgo_31
|
br label %_llgo_31
|
||||||
@@ -330,110 +332,110 @@ _llgo_30: ; preds = %_llgo_4
|
|||||||
br label %_llgo_31
|
br label %_llgo_31
|
||||||
|
|
||||||
_llgo_31: ; preds = %_llgo_30, %_llgo_29
|
_llgo_31: ; preds = %_llgo_30, %_llgo_29
|
||||||
%113 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ { %"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer, i1 true }, %_llgo_29 ], [ zeroinitializer, %_llgo_30 ]
|
%115 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ { %"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer, i1 true }, %_llgo_29 ], [ zeroinitializer, %_llgo_30 ]
|
||||||
%114 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %113, 0
|
%116 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %115, 0
|
||||||
%115 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %113, 1
|
%117 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %115, 1
|
||||||
br i1 %115, label %_llgo_5, label %_llgo_6
|
br i1 %117, label %_llgo_5, label %_llgo_6
|
||||||
|
|
||||||
_llgo_32: ; preds = %_llgo_6
|
_llgo_32: ; preds = %_llgo_6
|
||||||
%116 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %33, 1
|
%118 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %33, 1
|
||||||
%117 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %34, 0
|
%119 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %34, 0
|
||||||
%118 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %117, ptr %116, 1
|
%120 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %119, ptr %118, 1
|
||||||
%119 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %118, 0
|
%121 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %120, 0
|
||||||
%120 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %119, i1 true, 1
|
%122 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %121, i1 true, 1
|
||||||
br label %_llgo_34
|
br label %_llgo_34
|
||||||
|
|
||||||
_llgo_33: ; preds = %_llgo_6
|
_llgo_33: ; preds = %_llgo_6
|
||||||
br label %_llgo_34
|
br label %_llgo_34
|
||||||
|
|
||||||
_llgo_34: ; preds = %_llgo_33, %_llgo_32
|
_llgo_34: ; preds = %_llgo_33, %_llgo_32
|
||||||
%121 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } [ %120, %_llgo_32 ], [ zeroinitializer, %_llgo_33 ]
|
%123 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } [ %122, %_llgo_32 ], [ zeroinitializer, %_llgo_33 ]
|
||||||
%122 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %121, 0
|
%124 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %123, 0
|
||||||
%123 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %121, 1
|
%125 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %123, 1
|
||||||
br i1 %123, label %_llgo_8, label %_llgo_7
|
br i1 %125, label %_llgo_8, label %_llgo_7
|
||||||
|
|
||||||
_llgo_35: ; preds = %_llgo_8
|
_llgo_35: ; preds = %_llgo_8
|
||||||
%124 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %33, 0
|
%126 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %33, 0
|
||||||
%125 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %124, i1 true, 1
|
%127 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %126, i1 true, 1
|
||||||
br label %_llgo_37
|
br label %_llgo_37
|
||||||
|
|
||||||
_llgo_36: ; preds = %_llgo_8
|
_llgo_36: ; preds = %_llgo_8
|
||||||
br label %_llgo_37
|
br label %_llgo_37
|
||||||
|
|
||||||
_llgo_37: ; preds = %_llgo_36, %_llgo_35
|
_llgo_37: ; preds = %_llgo_36, %_llgo_35
|
||||||
%126 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ %125, %_llgo_35 ], [ zeroinitializer, %_llgo_36 ]
|
%128 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ %127, %_llgo_35 ], [ zeroinitializer, %_llgo_36 ]
|
||||||
%127 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %126, 0
|
%129 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %128, 0
|
||||||
%128 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %126, 1
|
%130 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %128, 1
|
||||||
br i1 %128, label %_llgo_10, label %_llgo_9
|
br i1 %130, label %_llgo_10, label %_llgo_9
|
||||||
|
|
||||||
_llgo_38: ; preds = %_llgo_10
|
_llgo_38: ; preds = %_llgo_10
|
||||||
%129 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %33, 1
|
%131 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %33, 1
|
||||||
%130 = load ptr, ptr @"github.com/goplus/llgo/cl/_testgo/ifaceconv.iface$gZBF8fFlqIMZ9M6lT2VWPyc3eu5Co6j0WoKGIEgDPAw", align 8
|
%132 = load ptr, ptr @"github.com/goplus/llgo/cl/_testgo/ifaceconv.iface$gZBF8fFlqIMZ9M6lT2VWPyc3eu5Co6j0WoKGIEgDPAw", align 8
|
||||||
%131 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %130, ptr %47)
|
%133 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %132, ptr %48)
|
||||||
%132 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %131, 0
|
%134 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %133, 0
|
||||||
%133 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %132, ptr %129, 1
|
%135 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %134, ptr %131, 1
|
||||||
%134 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %133, 0
|
%136 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %135, 0
|
||||||
%135 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %134, i1 true, 1
|
%137 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %136, i1 true, 1
|
||||||
br label %_llgo_40
|
br label %_llgo_40
|
||||||
|
|
||||||
_llgo_39: ; preds = %_llgo_10
|
_llgo_39: ; preds = %_llgo_10
|
||||||
br label %_llgo_40
|
br label %_llgo_40
|
||||||
|
|
||||||
_llgo_40: ; preds = %_llgo_39, %_llgo_38
|
_llgo_40: ; preds = %_llgo_39, %_llgo_38
|
||||||
%136 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ %135, %_llgo_38 ], [ zeroinitializer, %_llgo_39 ]
|
%138 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ %137, %_llgo_38 ], [ zeroinitializer, %_llgo_39 ]
|
||||||
%137 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %136, 0
|
%139 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %138, 0
|
||||||
%138 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %136, 1
|
%140 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %138, 1
|
||||||
br i1 %138, label %_llgo_11, label %_llgo_12
|
br i1 %140, label %_llgo_11, label %_llgo_12
|
||||||
|
|
||||||
_llgo_41: ; preds = %_llgo_12
|
_llgo_41: ; preds = %_llgo_12
|
||||||
%139 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %59, 1
|
%141 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %60, 1
|
||||||
%140 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %60, 0
|
%142 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %61, 0
|
||||||
%141 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %140, ptr %139, 1
|
%143 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %142, ptr %141, 1
|
||||||
%142 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %141, 0
|
%144 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %143, 0
|
||||||
%143 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %142, i1 true, 1
|
%145 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %144, i1 true, 1
|
||||||
br label %_llgo_43
|
br label %_llgo_43
|
||||||
|
|
||||||
_llgo_42: ; preds = %_llgo_12
|
_llgo_42: ; preds = %_llgo_12
|
||||||
br label %_llgo_43
|
br label %_llgo_43
|
||||||
|
|
||||||
_llgo_43: ; preds = %_llgo_42, %_llgo_41
|
_llgo_43: ; preds = %_llgo_42, %_llgo_41
|
||||||
%144 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } [ %143, %_llgo_41 ], [ zeroinitializer, %_llgo_42 ]
|
%146 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } [ %145, %_llgo_41 ], [ zeroinitializer, %_llgo_42 ]
|
||||||
%145 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %144, 0
|
%147 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %146, 0
|
||||||
%146 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %144, 1
|
%148 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %146, 1
|
||||||
br i1 %146, label %_llgo_14, label %_llgo_13
|
br i1 %148, label %_llgo_14, label %_llgo_13
|
||||||
|
|
||||||
_llgo_44: ; preds = %_llgo_14
|
_llgo_44: ; preds = %_llgo_14
|
||||||
%147 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %59, 0
|
%149 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %60, 0
|
||||||
%148 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %147, i1 true, 1
|
%150 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %149, i1 true, 1
|
||||||
br label %_llgo_46
|
br label %_llgo_46
|
||||||
|
|
||||||
_llgo_45: ; preds = %_llgo_14
|
_llgo_45: ; preds = %_llgo_14
|
||||||
br label %_llgo_46
|
br label %_llgo_46
|
||||||
|
|
||||||
_llgo_46: ; preds = %_llgo_45, %_llgo_44
|
_llgo_46: ; preds = %_llgo_45, %_llgo_44
|
||||||
%149 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ %148, %_llgo_44 ], [ zeroinitializer, %_llgo_45 ]
|
%151 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ %150, %_llgo_44 ], [ zeroinitializer, %_llgo_45 ]
|
||||||
%150 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %149, 0
|
%152 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %151, 0
|
||||||
%151 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %149, 1
|
%153 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %151, 1
|
||||||
br i1 %151, label %_llgo_16, label %_llgo_15
|
br i1 %153, label %_llgo_16, label %_llgo_15
|
||||||
|
|
||||||
_llgo_47: ; preds = %_llgo_16
|
_llgo_47: ; preds = %_llgo_16
|
||||||
%152 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %59, 1
|
%154 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %60, 1
|
||||||
%153 = load ptr, ptr @"github.com/goplus/llgo/cl/_testgo/ifaceconv.iface$gZBF8fFlqIMZ9M6lT2VWPyc3eu5Co6j0WoKGIEgDPAw", align 8
|
%155 = load ptr, ptr @"github.com/goplus/llgo/cl/_testgo/ifaceconv.iface$gZBF8fFlqIMZ9M6lT2VWPyc3eu5Co6j0WoKGIEgDPAw", align 8
|
||||||
%154 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %153, ptr %73)
|
%156 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %155, ptr %75)
|
||||||
%155 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %154, 0
|
%157 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %156, 0
|
||||||
%156 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %155, ptr %152, 1
|
%158 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %157, ptr %154, 1
|
||||||
%157 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %156, 0
|
%159 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %158, 0
|
||||||
%158 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %157, i1 true, 1
|
%160 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %159, i1 true, 1
|
||||||
br label %_llgo_49
|
br label %_llgo_49
|
||||||
|
|
||||||
_llgo_48: ; preds = %_llgo_16
|
_llgo_48: ; preds = %_llgo_16
|
||||||
br label %_llgo_49
|
br label %_llgo_49
|
||||||
|
|
||||||
_llgo_49: ; preds = %_llgo_48, %_llgo_47
|
_llgo_49: ; preds = %_llgo_48, %_llgo_47
|
||||||
%159 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ %158, %_llgo_47 ], [ zeroinitializer, %_llgo_48 ]
|
%161 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ %160, %_llgo_47 ], [ zeroinitializer, %_llgo_48 ]
|
||||||
%160 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %159, 0
|
%162 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %161, 0
|
||||||
%161 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %159, 1
|
%163 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %161, 1
|
||||||
br i1 %161, label %_llgo_18, label %_llgo_17
|
br i1 %163, label %_llgo_18, label %_llgo_17
|
||||||
}
|
}
|
||||||
|
|
||||||
define void @"github.com/goplus/llgo/cl/_testgo/ifaceconv.init$after"() {
|
define void @"github.com/goplus/llgo/cl/_testgo/ifaceconv.init$after"() {
|
||||||
|
|||||||
@@ -203,111 +203,115 @@ _llgo_4: ; preds = %_llgo_2
|
|||||||
%43 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr %42, align 8
|
%43 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr %42, align 8
|
||||||
%44 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %43)
|
%44 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %43)
|
||||||
%45 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceprom.I", align 8
|
%45 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceprom.I", align 8
|
||||||
|
%46 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %43, 1
|
||||||
br i1 true, label %_llgo_17, label %_llgo_18
|
br i1 true, label %_llgo_17, label %_llgo_18
|
||||||
|
|
||||||
_llgo_5: ; preds = %_llgo_17
|
_llgo_5: ; preds = %_llgo_17
|
||||||
%46 = load ptr, ptr @_llgo_int, align 8
|
%47 = load ptr, ptr @_llgo_int, align 8
|
||||||
%47 = inttoptr i64 %113 to ptr
|
%48 = inttoptr i64 %117 to ptr
|
||||||
%48 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %46, 0
|
%49 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %47, 0
|
||||||
%49 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %48, ptr %47, 1
|
%50 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %49, ptr %48, 1
|
||||||
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %49)
|
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %50)
|
||||||
unreachable
|
unreachable
|
||||||
|
|
||||||
_llgo_6: ; preds = %_llgo_17
|
_llgo_6: ; preds = %_llgo_17
|
||||||
%50 = load %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S", ptr %0, align 8
|
%51 = load %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S", ptr %0, align 8
|
||||||
%51 = extractvalue %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S" %50, 0
|
%52 = extractvalue %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S" %51, 0
|
||||||
%52 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %51)
|
%53 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %52)
|
||||||
%53 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceprom.I", align 8
|
%54 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceprom.I", align 8
|
||||||
|
%55 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %52, 1
|
||||||
br i1 true, label %_llgo_19, label %_llgo_20
|
br i1 true, label %_llgo_19, label %_llgo_20
|
||||||
|
|
||||||
_llgo_7: ; preds = %_llgo_19
|
_llgo_7: ; preds = %_llgo_19
|
||||||
%54 = load ptr, ptr @_llgo_int, align 8
|
%56 = load ptr, ptr @_llgo_int, align 8
|
||||||
%55 = inttoptr i64 %124 to ptr
|
%57 = inttoptr i64 %128 to ptr
|
||||||
%56 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %54, 0
|
%58 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %56, 0
|
||||||
%57 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %56, ptr %55, 1
|
%59 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %58, ptr %57, 1
|
||||||
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %57)
|
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %59)
|
||||||
unreachable
|
unreachable
|
||||||
|
|
||||||
_llgo_8: ; preds = %_llgo_19
|
_llgo_8: ; preds = %_llgo_19
|
||||||
%58 = getelementptr inbounds %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S", ptr %0, i32 0, i32 0
|
%60 = getelementptr inbounds %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S", ptr %0, i32 0, i32 0
|
||||||
%59 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr %58, align 8
|
%61 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr %60, align 8
|
||||||
%60 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %59)
|
%62 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %61)
|
||||||
%61 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %59, 0
|
%63 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %61, 0
|
||||||
%62 = getelementptr ptr, ptr %61, i64 4
|
%64 = getelementptr ptr, ptr %63, i64 4
|
||||||
%63 = load ptr, ptr %62, align 8
|
%65 = load ptr, ptr %64, align 8
|
||||||
%64 = insertvalue { ptr, ptr } undef, ptr %63, 0
|
%66 = insertvalue { ptr, ptr } undef, ptr %65, 0
|
||||||
%65 = insertvalue { ptr, ptr } %64, ptr %60, 1
|
%67 = insertvalue { ptr, ptr } %66, ptr %62, 1
|
||||||
%66 = extractvalue { ptr, ptr } %65, 1
|
%68 = extractvalue { ptr, ptr } %67, 1
|
||||||
%67 = extractvalue { ptr, ptr } %65, 0
|
%69 = extractvalue { ptr, ptr } %67, 0
|
||||||
%68 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" %67(ptr %66)
|
%70 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" %69(ptr %68)
|
||||||
%69 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %68, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 3 })
|
%71 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %70, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 3 })
|
||||||
%70 = xor i1 %69, true
|
%72 = xor i1 %71, true
|
||||||
br i1 %70, label %_llgo_9, label %_llgo_10
|
br i1 %72, label %_llgo_9, label %_llgo_10
|
||||||
|
|
||||||
_llgo_9: ; preds = %_llgo_8
|
_llgo_9: ; preds = %_llgo_8
|
||||||
%71 = load ptr, ptr @_llgo_string, align 8
|
%73 = load ptr, ptr @_llgo_string, align 8
|
||||||
%72 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
%74 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
||||||
store %"github.com/goplus/llgo/runtime/internal/runtime.String" %68, ptr %72, align 8
|
store %"github.com/goplus/llgo/runtime/internal/runtime.String" %70, ptr %74, align 8
|
||||||
%73 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %71, 0
|
%75 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %73, 0
|
||||||
%74 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %73, ptr %72, 1
|
%76 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %75, ptr %74, 1
|
||||||
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %74)
|
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %76)
|
||||||
unreachable
|
unreachable
|
||||||
|
|
||||||
_llgo_10: ; preds = %_llgo_8
|
_llgo_10: ; preds = %_llgo_8
|
||||||
%75 = load %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S", ptr %0, align 8
|
%77 = load %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S", ptr %0, align 8
|
||||||
%76 = extractvalue %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S" %75, 0
|
%78 = extractvalue %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S" %77, 0
|
||||||
%77 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %76)
|
%79 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %78)
|
||||||
%78 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %76, 0
|
%80 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %78, 0
|
||||||
%79 = getelementptr ptr, ptr %78, i64 4
|
%81 = getelementptr ptr, ptr %80, i64 4
|
||||||
%80 = load ptr, ptr %79, align 8
|
%82 = load ptr, ptr %81, align 8
|
||||||
%81 = insertvalue { ptr, ptr } undef, ptr %80, 0
|
%83 = insertvalue { ptr, ptr } undef, ptr %82, 0
|
||||||
%82 = insertvalue { ptr, ptr } %81, ptr %77, 1
|
%84 = insertvalue { ptr, ptr } %83, ptr %79, 1
|
||||||
%83 = extractvalue { ptr, ptr } %82, 1
|
%85 = extractvalue { ptr, ptr } %84, 1
|
||||||
%84 = extractvalue { ptr, ptr } %82, 0
|
%86 = extractvalue { ptr, ptr } %84, 0
|
||||||
%85 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" %84(ptr %83)
|
%87 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" %86(ptr %85)
|
||||||
%86 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %85, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 3 })
|
%88 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %87, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 3 })
|
||||||
%87 = xor i1 %86, true
|
%89 = xor i1 %88, true
|
||||||
br i1 %87, label %_llgo_11, label %_llgo_12
|
br i1 %89, label %_llgo_11, label %_llgo_12
|
||||||
|
|
||||||
_llgo_11: ; preds = %_llgo_10
|
_llgo_11: ; preds = %_llgo_10
|
||||||
%88 = load ptr, ptr @_llgo_string, align 8
|
%90 = load ptr, ptr @_llgo_string, align 8
|
||||||
%89 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
%91 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
||||||
store %"github.com/goplus/llgo/runtime/internal/runtime.String" %85, ptr %89, align 8
|
store %"github.com/goplus/llgo/runtime/internal/runtime.String" %87, ptr %91, align 8
|
||||||
%90 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %88, 0
|
%92 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %90, 0
|
||||||
%91 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %90, ptr %89, 1
|
%93 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %92, ptr %91, 1
|
||||||
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %91)
|
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %93)
|
||||||
unreachable
|
unreachable
|
||||||
|
|
||||||
_llgo_12: ; preds = %_llgo_10
|
_llgo_12: ; preds = %_llgo_10
|
||||||
%92 = getelementptr inbounds %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S", ptr %0, i32 0, i32 0
|
%94 = getelementptr inbounds %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S", ptr %0, i32 0, i32 0
|
||||||
%93 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr %92, align 8
|
%95 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr %94, align 8
|
||||||
%94 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %93)
|
%96 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %95)
|
||||||
%95 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceprom.I", align 8
|
%97 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceprom.I", align 8
|
||||||
|
%98 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %95, 1
|
||||||
br i1 true, label %_llgo_21, label %_llgo_22
|
br i1 true, label %_llgo_21, label %_llgo_22
|
||||||
|
|
||||||
_llgo_13: ; preds = %_llgo_21
|
_llgo_13: ; preds = %_llgo_21
|
||||||
%96 = load ptr, ptr @_llgo_string, align 8
|
%99 = load ptr, ptr @_llgo_string, align 8
|
||||||
%97 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
%100 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
||||||
store %"github.com/goplus/llgo/runtime/internal/runtime.String" %135, ptr %97, align 8
|
store %"github.com/goplus/llgo/runtime/internal/runtime.String" %139, ptr %100, align 8
|
||||||
%98 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %96, 0
|
%101 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %99, 0
|
||||||
%99 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %98, ptr %97, 1
|
%102 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %101, ptr %100, 1
|
||||||
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %99)
|
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %102)
|
||||||
unreachable
|
unreachable
|
||||||
|
|
||||||
_llgo_14: ; preds = %_llgo_21
|
_llgo_14: ; preds = %_llgo_21
|
||||||
%100 = load %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S", ptr %0, align 8
|
%103 = load %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S", ptr %0, align 8
|
||||||
%101 = extractvalue %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S" %100, 0
|
%104 = extractvalue %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S" %103, 0
|
||||||
%102 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %101)
|
%105 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %104)
|
||||||
%103 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceprom.I", align 8
|
%106 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceprom.I", align 8
|
||||||
|
%107 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %104, 1
|
||||||
br i1 true, label %_llgo_23, label %_llgo_24
|
br i1 true, label %_llgo_23, label %_llgo_24
|
||||||
|
|
||||||
_llgo_15: ; preds = %_llgo_23
|
_llgo_15: ; preds = %_llgo_23
|
||||||
%104 = load ptr, ptr @_llgo_string, align 8
|
%108 = load ptr, ptr @_llgo_string, align 8
|
||||||
%105 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
%109 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
||||||
store %"github.com/goplus/llgo/runtime/internal/runtime.String" %147, ptr %105, align 8
|
store %"github.com/goplus/llgo/runtime/internal/runtime.String" %151, ptr %109, align 8
|
||||||
%106 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %104, 0
|
%110 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %108, 0
|
||||||
%107 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %106, ptr %105, 1
|
%111 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %110, ptr %109, 1
|
||||||
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %107)
|
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %111)
|
||||||
unreachable
|
unreachable
|
||||||
|
|
||||||
_llgo_16: ; preds = %_llgo_23
|
_llgo_16: ; preds = %_llgo_23
|
||||||
@@ -316,85 +320,85 @@ _llgo_16: ; preds = %_llgo_23
|
|||||||
ret void
|
ret void
|
||||||
|
|
||||||
_llgo_17: ; preds = %_llgo_4
|
_llgo_17: ; preds = %_llgo_4
|
||||||
%108 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
%112 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
||||||
%109 = getelementptr inbounds { %"github.com/goplus/llgo/runtime/internal/runtime.iface" }, ptr %108, i32 0, i32 0
|
%113 = getelementptr inbounds { %"github.com/goplus/llgo/runtime/internal/runtime.iface" }, ptr %112, i32 0, i32 0
|
||||||
store %"github.com/goplus/llgo/runtime/internal/runtime.iface" %43, ptr %109, align 8
|
store %"github.com/goplus/llgo/runtime/internal/runtime.iface" %43, ptr %113, align 8
|
||||||
%110 = insertvalue { ptr, ptr } { ptr @"github.com/goplus/llgo/cl/_testgo/ifaceprom.I.one$bound", ptr undef }, ptr %108, 1
|
%114 = insertvalue { ptr, ptr } { ptr @"github.com/goplus/llgo/cl/_testgo/ifaceprom.I.one$bound", ptr undef }, ptr %112, 1
|
||||||
%111 = extractvalue { ptr, ptr } %110, 1
|
%115 = extractvalue { ptr, ptr } %114, 1
|
||||||
%112 = extractvalue { ptr, ptr } %110, 0
|
%116 = extractvalue { ptr, ptr } %114, 0
|
||||||
%113 = call i64 %112(ptr %111)
|
%117 = call i64 %116(ptr %115)
|
||||||
%114 = icmp ne i64 %113, 1
|
%118 = icmp ne i64 %117, 1
|
||||||
br i1 %114, label %_llgo_5, label %_llgo_6
|
br i1 %118, label %_llgo_5, label %_llgo_6
|
||||||
|
|
||||||
_llgo_18: ; preds = %_llgo_4
|
_llgo_18: ; preds = %_llgo_4
|
||||||
%115 = load ptr, ptr @_llgo_string, align 8
|
%119 = load ptr, ptr @_llgo_string, align 8
|
||||||
%116 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
%120 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
||||||
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 116 }, ptr %116, align 8
|
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 116 }, ptr %120, align 8
|
||||||
%117 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %115, 0
|
%121 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %119, 0
|
||||||
%118 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %117, ptr %116, 1
|
%122 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %121, ptr %120, 1
|
||||||
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %118)
|
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %122)
|
||||||
unreachable
|
unreachable
|
||||||
|
|
||||||
_llgo_19: ; preds = %_llgo_6
|
_llgo_19: ; preds = %_llgo_6
|
||||||
%119 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
%123 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
||||||
%120 = getelementptr inbounds { %"github.com/goplus/llgo/runtime/internal/runtime.iface" }, ptr %119, i32 0, i32 0
|
%124 = getelementptr inbounds { %"github.com/goplus/llgo/runtime/internal/runtime.iface" }, ptr %123, i32 0, i32 0
|
||||||
store %"github.com/goplus/llgo/runtime/internal/runtime.iface" %51, ptr %120, align 8
|
store %"github.com/goplus/llgo/runtime/internal/runtime.iface" %52, ptr %124, align 8
|
||||||
%121 = insertvalue { ptr, ptr } { ptr @"github.com/goplus/llgo/cl/_testgo/ifaceprom.I.one$bound", ptr undef }, ptr %119, 1
|
%125 = insertvalue { ptr, ptr } { ptr @"github.com/goplus/llgo/cl/_testgo/ifaceprom.I.one$bound", ptr undef }, ptr %123, 1
|
||||||
%122 = extractvalue { ptr, ptr } %121, 1
|
%126 = extractvalue { ptr, ptr } %125, 1
|
||||||
%123 = extractvalue { ptr, ptr } %121, 0
|
%127 = extractvalue { ptr, ptr } %125, 0
|
||||||
%124 = call i64 %123(ptr %122)
|
%128 = call i64 %127(ptr %126)
|
||||||
%125 = icmp ne i64 %124, 1
|
%129 = icmp ne i64 %128, 1
|
||||||
br i1 %125, label %_llgo_7, label %_llgo_8
|
br i1 %129, label %_llgo_7, label %_llgo_8
|
||||||
|
|
||||||
_llgo_20: ; preds = %_llgo_6
|
_llgo_20: ; preds = %_llgo_6
|
||||||
%126 = load ptr, ptr @_llgo_string, align 8
|
%130 = load ptr, ptr @_llgo_string, align 8
|
||||||
%127 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
%131 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
||||||
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 116 }, ptr %127, align 8
|
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 116 }, ptr %131, align 8
|
||||||
%128 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %126, 0
|
%132 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %130, 0
|
||||||
%129 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %128, ptr %127, 1
|
%133 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %132, ptr %131, 1
|
||||||
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %129)
|
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %133)
|
||||||
unreachable
|
unreachable
|
||||||
|
|
||||||
_llgo_21: ; preds = %_llgo_12
|
_llgo_21: ; preds = %_llgo_12
|
||||||
%130 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
%134 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
||||||
%131 = getelementptr inbounds { %"github.com/goplus/llgo/runtime/internal/runtime.iface" }, ptr %130, i32 0, i32 0
|
%135 = getelementptr inbounds { %"github.com/goplus/llgo/runtime/internal/runtime.iface" }, ptr %134, i32 0, i32 0
|
||||||
store %"github.com/goplus/llgo/runtime/internal/runtime.iface" %93, ptr %131, align 8
|
store %"github.com/goplus/llgo/runtime/internal/runtime.iface" %95, ptr %135, align 8
|
||||||
%132 = insertvalue { ptr, ptr } { ptr @"github.com/goplus/llgo/cl/_testgo/ifaceprom.I.two$bound", ptr undef }, ptr %130, 1
|
%136 = insertvalue { ptr, ptr } { ptr @"github.com/goplus/llgo/cl/_testgo/ifaceprom.I.two$bound", ptr undef }, ptr %134, 1
|
||||||
%133 = extractvalue { ptr, ptr } %132, 1
|
%137 = extractvalue { ptr, ptr } %136, 1
|
||||||
%134 = extractvalue { ptr, ptr } %132, 0
|
%138 = extractvalue { ptr, ptr } %136, 0
|
||||||
%135 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" %134(ptr %133)
|
%139 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" %138(ptr %137)
|
||||||
%136 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %135, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 3 })
|
%140 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %139, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 3 })
|
||||||
%137 = xor i1 %136, true
|
%141 = xor i1 %140, true
|
||||||
br i1 %137, label %_llgo_13, label %_llgo_14
|
br i1 %141, label %_llgo_13, label %_llgo_14
|
||||||
|
|
||||||
_llgo_22: ; preds = %_llgo_12
|
_llgo_22: ; preds = %_llgo_12
|
||||||
%138 = load ptr, ptr @_llgo_string, align 8
|
%142 = load ptr, ptr @_llgo_string, align 8
|
||||||
%139 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
%143 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
||||||
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 116 }, ptr %139, align 8
|
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 116 }, ptr %143, align 8
|
||||||
%140 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %138, 0
|
%144 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %142, 0
|
||||||
%141 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %140, ptr %139, 1
|
%145 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %144, ptr %143, 1
|
||||||
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %141)
|
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %145)
|
||||||
unreachable
|
unreachable
|
||||||
|
|
||||||
_llgo_23: ; preds = %_llgo_14
|
_llgo_23: ; preds = %_llgo_14
|
||||||
%142 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
%146 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
||||||
%143 = getelementptr inbounds { %"github.com/goplus/llgo/runtime/internal/runtime.iface" }, ptr %142, i32 0, i32 0
|
%147 = getelementptr inbounds { %"github.com/goplus/llgo/runtime/internal/runtime.iface" }, ptr %146, i32 0, i32 0
|
||||||
store %"github.com/goplus/llgo/runtime/internal/runtime.iface" %101, ptr %143, align 8
|
store %"github.com/goplus/llgo/runtime/internal/runtime.iface" %104, ptr %147, align 8
|
||||||
%144 = insertvalue { ptr, ptr } { ptr @"github.com/goplus/llgo/cl/_testgo/ifaceprom.I.two$bound", ptr undef }, ptr %142, 1
|
%148 = insertvalue { ptr, ptr } { ptr @"github.com/goplus/llgo/cl/_testgo/ifaceprom.I.two$bound", ptr undef }, ptr %146, 1
|
||||||
%145 = extractvalue { ptr, ptr } %144, 1
|
%149 = extractvalue { ptr, ptr } %148, 1
|
||||||
%146 = extractvalue { ptr, ptr } %144, 0
|
%150 = extractvalue { ptr, ptr } %148, 0
|
||||||
%147 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" %146(ptr %145)
|
%151 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" %150(ptr %149)
|
||||||
%148 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %147, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 3 })
|
%152 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %151, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 3 })
|
||||||
%149 = xor i1 %148, true
|
%153 = xor i1 %152, true
|
||||||
br i1 %149, label %_llgo_15, label %_llgo_16
|
br i1 %153, label %_llgo_15, label %_llgo_16
|
||||||
|
|
||||||
_llgo_24: ; preds = %_llgo_14
|
_llgo_24: ; preds = %_llgo_14
|
||||||
%150 = load ptr, ptr @_llgo_string, align 8
|
%154 = load ptr, ptr @_llgo_string, align 8
|
||||||
%151 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
%155 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
||||||
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 116 }, ptr %151, align 8
|
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 116 }, ptr %155, align 8
|
||||||
%152 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %150, 0
|
%156 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %154, 0
|
||||||
%153 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %152, ptr %151, 1
|
%157 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %156, ptr %155, 1
|
||||||
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %153)
|
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %157)
|
||||||
unreachable
|
unreachable
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -393,48 +393,49 @@ _llgo_1: ; preds = %_llgo_0
|
|||||||
call void @"github.com/goplus/llgo/cl/_testgo/invoke.invoke"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %124)
|
call void @"github.com/goplus/llgo/cl/_testgo/invoke.invoke"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %124)
|
||||||
%125 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %116, 0
|
%125 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %116, 0
|
||||||
%126 = load ptr, ptr @_llgo_any, align 8
|
%126 = load ptr, ptr @_llgo_any, align 8
|
||||||
|
%127 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %116, 1
|
||||||
br i1 true, label %_llgo_3, label %_llgo_4
|
br i1 true, label %_llgo_3, label %_llgo_4
|
||||||
|
|
||||||
_llgo_2: ; preds = %_llgo_0
|
_llgo_2: ; preds = %_llgo_0
|
||||||
%127 = load ptr, ptr @_llgo_string, align 8
|
%128 = load ptr, ptr @_llgo_string, align 8
|
||||||
%128 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
%129 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
||||||
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 71 }, ptr %128, align 8
|
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 71 }, ptr %129, align 8
|
||||||
%129 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %127, 0
|
%130 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %128, 0
|
||||||
%130 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %129, ptr %128, 1
|
%131 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %130, ptr %129, 1
|
||||||
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %130)
|
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %131)
|
||||||
unreachable
|
unreachable
|
||||||
|
|
||||||
_llgo_3: ; preds = %_llgo_1
|
_llgo_3: ; preds = %_llgo_1
|
||||||
%131 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %116, 0
|
%132 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %116, 0
|
||||||
%132 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8
|
%133 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8
|
||||||
%133 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %132, ptr %131)
|
%134 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %133, ptr %132)
|
||||||
br i1 %133, label %_llgo_5, label %_llgo_6
|
br i1 %134, label %_llgo_5, label %_llgo_6
|
||||||
|
|
||||||
_llgo_4: ; preds = %_llgo_1
|
_llgo_4: ; preds = %_llgo_1
|
||||||
%134 = load ptr, ptr @_llgo_string, align 8
|
%135 = load ptr, ptr @_llgo_string, align 8
|
||||||
%135 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
%136 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
||||||
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @25, i64 32 }, ptr %135, align 8
|
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @25, i64 32 }, ptr %136, align 8
|
||||||
%136 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %134, 0
|
%137 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %135, 0
|
||||||
%137 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %136, ptr %135, 1
|
%138 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %137, ptr %136, 1
|
||||||
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %137)
|
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %138)
|
||||||
unreachable
|
unreachable
|
||||||
|
|
||||||
_llgo_5: ; preds = %_llgo_3
|
_llgo_5: ; preds = %_llgo_3
|
||||||
%138 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %116, 1
|
%139 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %116, 1
|
||||||
%139 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8
|
%140 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8
|
||||||
%140 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %139, ptr %131)
|
%141 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %140, ptr %132)
|
||||||
%141 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %140, 0
|
%142 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %141, 0
|
||||||
%142 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %141, ptr %138, 1
|
%143 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %142, ptr %139, 1
|
||||||
call void @"github.com/goplus/llgo/cl/_testgo/invoke.invoke"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %142)
|
call void @"github.com/goplus/llgo/cl/_testgo/invoke.invoke"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %143)
|
||||||
ret void
|
ret void
|
||||||
|
|
||||||
_llgo_6: ; preds = %_llgo_3
|
_llgo_6: ; preds = %_llgo_3
|
||||||
%143 = load ptr, ptr @_llgo_string, align 8
|
%144 = load ptr, ptr @_llgo_string, align 8
|
||||||
%144 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
%145 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
|
||||||
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 52 }, ptr %144, align 8
|
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 52 }, ptr %145, align 8
|
||||||
%145 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %143, 0
|
%146 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %144, 0
|
||||||
%146 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %145, ptr %144, 1
|
%147 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %146, ptr %145, 1
|
||||||
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %146)
|
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %147)
|
||||||
unreachable
|
unreachable
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -241,11 +241,10 @@ func (b Builder) TypeAssert(x Expr, assertedTyp Type, commaOk bool) Expr {
|
|||||||
}
|
}
|
||||||
tx := b.faceAbiType(x)
|
tx := b.faceAbiType(x)
|
||||||
tabi := b.abiType(assertedTyp.raw.Type)
|
tabi := b.abiType(assertedTyp.raw.Type)
|
||||||
|
|
||||||
var eq Expr
|
var eq Expr
|
||||||
var val func() Expr
|
var val func() Expr
|
||||||
if x.RawType() == assertedTyp.RawType() {
|
if x.RawType() == assertedTyp.RawType() {
|
||||||
eq = b.Const(constant.MakeBool(true), b.Prog.Bool())
|
eq = b.Const(constant.MakeBool(!b.faceData(x.impl).IsNull()), b.Prog.Bool())
|
||||||
val = func() Expr { return x }
|
val = func() Expr { return x }
|
||||||
} else {
|
} else {
|
||||||
if rawIntf, ok := assertedTyp.raw.Type.Underlying().(*types.Interface); ok {
|
if rawIntf, ok := assertedTyp.raw.Type.Underlying().(*types.Interface); ok {
|
||||||
|
|||||||
Reference in New Issue
Block a user