cmd/compile: fix crash on bare package name in constant declarations

Fixes #11361.

Change-Id: I70b8808f97f0e07de680e7e6ede1322ea0fdbbc0
Reviewed-on: https://go-review.googlesource.com/21936
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
Matthew Dempsky 2016-04-12 17:46:41 -07:00
parent 6531fab06f
commit 0e01db4b8d
2 changed files with 18 additions and 0 deletions

View file

@ -540,8 +540,15 @@ func treecopy(n *Node, lineno int32) *Node {
}
return n
case OPACK:
// OPACK nodes are never valid in const value declarations,
// but allow them like any other declared symbol to avoid
// crashing (golang.org/issue/11361).
fallthrough
case ONAME, OLITERAL, OTYPE:
return n
}
}

View file

@ -0,0 +1,11 @@
// errorcheck
// 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.
package a
import "fmt" // ERROR "imported and not used"
const n = fmt // ERROR "fmt without selector" "fmt is not a constant"