File tree 1 file changed +10
-5
lines changed
src/cmd/compile/internal/escape 1 file changed +10
-5
lines changed Original file line number Diff line number Diff line change @@ -128,10 +128,13 @@ func Funcs(all []*ir.Func) {
128
128
if n , ok := n .(* ir.MakeExpr ); ok {
129
129
if n .Cap != nil {
130
130
if s := ir .StaticValue (n .Cap ); s .Op () == ir .OLITERAL {
131
- if v , ok := s .(* ir.BasicLit ); ! ok || v .Val ().Kind () != constant .Int {
131
+ cap , ok := s .(* ir.BasicLit )
132
+ if ! ok || cap .Val ().Kind () != constant .Int {
132
133
base .Fatalf ("unexpected BasicLit Kind" )
133
134
}
134
- n .Cap = s
135
+ if constant .Compare (cap .Val (), token .GEQ , constant .MakeInt64 (0 )) {
136
+ n .Cap = s
137
+ }
135
138
}
136
139
}
137
140
if n .Len != nil {
@@ -141,9 +144,11 @@ func Funcs(all []*ir.Func) {
141
144
base .Fatalf ("unexpected BasicLit Kind" )
142
145
}
143
146
144
- cap , ok := n .Cap .(* ir.BasicLit )
145
- if n .Cap == nil || (ok && constant .Compare (cap .Val (), token .GEQ , len .Val ())) {
146
- n .Len = s
147
+ if constant .Compare (len .Val (), token .GEQ , constant .MakeInt64 (0 )) {
148
+ cap , ok := n .Cap .(* ir.BasicLit )
149
+ if n .Cap == nil || (ok && constant .Compare (cap .Val (), token .GEQ , len .Val ())) {
150
+ n .Len = s
151
+ }
147
152
}
148
153
}
149
154
}
You can’t perform that action at this time.
0 commit comments