1 | package b |
---|---|
2 | |
3 | func f() { |
4 | var s []int |
5 | t := (*[0]int)(s) |
6 | _ = *t // want "nil dereference in load" |
7 | _ = (*[0]int)(s) |
8 | _ = *(*[0]int)(s) // want "nil dereference in load" |
9 | |
10 | // these operation is panic |
11 | _ = (*[1]int)(s) // want "nil slice being cast to an array of len > 0 will always panic" |
12 | _ = *(*[1]int)(s) // want "nil slice being cast to an array of len > 0 will always panic" |
13 | } |
14 | |
15 | func g() { |
16 | var s = make([]int, 0) |
17 | t := (*[0]int)(s) |
18 | println(*t) |
19 | } |
20 | |
21 | func h() { |
22 | var s = make([]int, 1) |
23 | t := (*[1]int)(s) |
24 | println(*t) |
25 | } |
26 | |
27 | func i(x []int) { |
28 | a := (*[1]int)(x) |
29 | if a != nil { // want "tautological condition: non-nil != nil" |
30 | _ = *a |
31 | } |
32 | } |
33 |