Commit e0f986bf authored by Ian Lance Taylor's avatar Ian Lance Taylor

cmd/compile: avoid function literal name collision with "glob"

The compiler was treating all global function literals as occurring in a
function named "glob", which caused a symbol name collision when there
was an actual function named "glob".  Fixed by adding a period.

Fixes #16193.

Change-Id: I67792901a8ca04635ba41d172bfaee99944f594d
Reviewed-on: https://go-review.googlesource.com/24500Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: 's avatarRobert Griesemer <gri@golang.org>
parent c0e5d445
......@@ -166,7 +166,7 @@ func closurename(n *Node) *Sym {
prefix := ""
if n.Func.Outerfunc == nil {
// Global closure.
outer = "glob"
outer = "glob."
prefix = "func"
closurename_closgen++
......
// compile
// Copyright 2016 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.
// The compiler used the name "glob" as the function holding a global
// function literal, colliding with an actual function named "glob".
package main
func glob() {
func() {
}()
}
var c1 = func() {
}
var c2 = func() {
}
func main() {
glob()
c1()
c2()
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment