Make compile-time string const comparison match semantics
of runtime.cmpstring.
Fixes #1515.
R=rsc
CC=golang-dev, rog
https://golang.org/cl/
4172049
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)
--- /dev/null
+// $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")
+ }
+}