diff --git a/src/cmd/gc/order.c b/src/cmd/gc/order.c index 29eb242b10d..d596b0ae189 100644 --- a/src/cmd/gc/order.c +++ b/src/cmd/gc/order.c @@ -472,7 +472,7 @@ ordermapassign(Node *n, Order *order) if(!istemp(m->left)) m->left = ordercopyexpr(m->left, m->left->type, order, 0); if(!istemp(m->right)) - m->right = ordercopyexpr(m->left, m->left->type, order, 0); + m->right = ordercopyexpr(m->right, m->right->type, order, 0); l->n = ordertemp(m->type, order, 0); a = nod(OAS, m, l->n); typecheck(&a, Etop); diff --git a/test/fixedbugs/issue7742.go b/test/fixedbugs/issue7742.go new file mode 100644 index 00000000000..dc167c22e83 --- /dev/null +++ b/test/fixedbugs/issue7742.go @@ -0,0 +1,18 @@ +// compile + +// Copyright 2014 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 7742: cannot use &autotmp_0001 (type *map[string]string) as type *string in function argument + +package main + +var ( + m map[string]string + v string +) + +func main() { + m[v], _ = v, v +}