From 93c4e29605ac67f3e288463027c35609ddccc253 Mon Sep 17 00:00:00 2001 From: Luuk van Dijk Date: Mon, 23 Jan 2012 16:57:12 +0100 Subject: [PATCH] gc: missed typecheck in subscripting a const string. Fixes #2674. R=rsc CC=golang-dev https://golang.org/cl/5574045 --- src/cmd/gc/walk.c | 1 + test/fixedbugs/bug399.go | 15 +++++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 test/fixedbugs/bug399.go diff --git a/src/cmd/gc/walk.c b/src/cmd/gc/walk.c index 68bd01cda0..6ec978f0bb 100644 --- a/src/cmd/gc/walk.c +++ b/src/cmd/gc/walk.c @@ -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 index 0000000000..25f6351e06 --- /dev/null +++ b/test/fixedbugs/bug399.go @@ -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])) +} + -- 2.50.0