ssa: debug info of Array and Slice

This commit is contained in:
Li Jie
2024-09-18 18:10:45 +08:00
parent d85a080f9b
commit a53ab7438c
2 changed files with 152 additions and 76 deletions

View File

@@ -11,27 +11,28 @@ type E struct {
i int
}
type StructWithAllTypeFields struct {
i8 int8
i16 int16
i32 int32
i64 int64
i int
u8 uint8
u16 uint16
u32 uint32
u64 uint64
u uint
f32 float32
f64 float64
b bool
c64 complex64
c128 complex128
// slice []int
// arr [3]int
s string
e E
pf *StructWithAllTypeFields // resursive
pi *int
i8 int8
i16 int16
i32 int32
i64 int64
i int
u8 uint8
u16 uint16
u32 uint32
u64 uint64
u uint
f32 float32
f64 float64
b bool
c64 complex64
c128 complex128
slice []int
arr [3]int
arr2 [3]E
s string
e E
pf *StructWithAllTypeFields // resursive
pi *int
// intr Interface
// m map[string]uint64
// c chan int
@@ -71,8 +72,9 @@ func FuncWithAllTypeParams(
b bool,
c64 complex64,
c128 complex128,
// slice []int,
// arr [3]int,
slice []int,
arr [3]int,
arr2 [3]E,
s string,
e E,
f StructWithAllTypeFields,
@@ -88,7 +90,7 @@ func FuncWithAllTypeParams(
i8, i16, i32, i64, i, u8, u16, u32, u64, u,
f32, f64, b,
c64, c128,
// slice, arr[0:],
slice, arr[0:],
s,
// &e, &f, pf, pi, intr, m, c, err,
// fn,
@@ -99,27 +101,28 @@ func FuncWithAllTypeParams(
func main() {
i := 100
s := StructWithAllTypeFields{
i8: 1,
i16: 2,
i32: 3,
i64: 4,
i: 5,
u8: 6,
u16: 7,
u32: 8,
u64: 9,
u: 10,
f32: 11,
f64: 12,
b: true,
c64: 13 + 14i,
c128: 15 + 16i,
// slice: []int{21, 22, 23},
// arr: [3]int{24, 25, 26},
s: "hello",
e: E{i: 30},
pf: &StructWithAllTypeFields{},
pi: &i,
i8: 1,
i16: 2,
i32: 3,
i64: 4,
i: 5,
u8: 6,
u16: 7,
u32: 8,
u64: 9,
u: 10,
f32: 11,
f64: 12,
b: true,
c64: 13 + 14i,
c128: 15 + 16i,
slice: []int{21, 22, 23},
arr: [3]int{24, 25, 26},
arr2: [3]E{{i: 27}, {i: 28}, {i: 29}},
s: "hello",
e: E{i: 30},
pf: &StructWithAllTypeFields{},
pi: &i,
// intr: &Struct{},
// m: make(map[string]uint64),
// c: make(chan int),
@@ -136,7 +139,7 @@ func main() {
s.i8, s.i16, s.i32, s.i64, s.i, s.u8, s.u16, s.u32, s.u64, s.u,
s.f32, s.f64, s.b,
s.c64, s.c128,
// s.slice, s.arr,
s.slice, s.arr, s.arr2,
s.s,
s.e, s,
s.pf, s.pi,