]> Cypherpunks repositories - gostls13.git/commitdiff
gc: missed typecheck in subscripting a const string.
authorLuuk van Dijk <lvd@golang.org>
Mon, 23 Jan 2012 15:57:12 +0000 (16:57 +0100)
committerLuuk van Dijk <lvd@golang.org>
Mon, 23 Jan 2012 15:57:12 +0000 (16:57 +0100)
Fixes #2674.

R=rsc
CC=golang-dev
https://golang.org/cl/5574045

src/cmd/gc/walk.c
test/fixedbugs/bug399.go [new file with mode: 0644]

index 68bd01cda070c8eb959c544d00951a5b06424406..6ec978f0bb2d97c9cf060fb5e3225e0e5e02f0cb 100644 (file)
@@ -876,6 +876,7 @@ walkexpr(Node **np, NodeList **init)
                                // delayed until now because "abc"[2] is not
                                // an ideal constant.
                                nodconst(n, n->type, n->left->val.u.sval->s[v]);
+                               n->typecheck = 1;
                        }
                }
                goto ret;
diff --git a/test/fixedbugs/bug399.go b/test/fixedbugs/bug399.go
new file mode 100644 (file)
index 0000000..25f6351
--- /dev/null
@@ -0,0 +1,15 @@
+// $G $D/$F.go || echo "Bug399"
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Issue 2674
+
+package main
+const dow = "\000\003"
+
+func main() {
+       println(int(dow[1]))
+}
+