diff --git a/src/cmd/gc/const.c b/src/cmd/gc/const.c index 0ee693c025..a54c40f6cc 100644 --- a/src/cmd/gc/const.c +++ b/src/cmd/gc/const.c @@ -1051,12 +1051,12 @@ int cmpslit(Node *l, Node *r) { int32 l1, l2, i, m; - char *s1, *s2; + uchar *s1, *s2; l1 = l->val.u.sval->len; l2 = r->val.u.sval->len; - s1 = l->val.u.sval->s; - s2 = r->val.u.sval->s; + s1 = (uchar*)l->val.u.sval->s; + s2 = (uchar*)r->val.u.sval->s; m = l1; if(l2 < m) diff --git a/test/fixedbugs/bug1515.go b/test/fixedbugs/bug1515.go new file mode 100644 index 0000000000..7402525164 --- /dev/null +++ b/test/fixedbugs/bug1515.go @@ -0,0 +1,20 @@ +// $G $D/$F.go && $L $F.$A && ./$A.out + +// 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. + +package main + +const ( + joao = "João" + jose = "José" +) + +func main() { + s1 := joao + s2 := jose + if (s1 < s2) != (joao < jose) { + panic("unequal") + } +}