]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: do not add invalid key to constSet
authorCuong Manh Le <cuong.manhle.vn@gmail.com>
Fri, 19 Feb 2021 19:40:35 +0000 (02:40 +0700)
committerCuong Manh Le <cuong.manhle.vn@gmail.com>
Thu, 4 Mar 2021 06:36:26 +0000 (06:36 +0000)
commit1d0256a9890b9179746551910a20cee97e653101
treeae56172c3d6a80bd5a9ccd769a48645f0a7a2062
parent4b8b2c58647af6f1979d8c53d886c8cd71c99e4b
cmd/compile: do not add invalid key to constSet

After CL 272654, the compiler now use go/constant.Value to represent
constant nodes. That makes ir.ConstantValue requires node type to
correctly return value for untyped int node. But untyped int node can
have nil type after typechecked, e.g: using int value as key for
map[string]int, that makes the compiler crashes.

To fix it, just don't add the invalid key to constSet, since when
it's not important to report duplicated keys when they aren't valid.

For #43311
Fixes #44432

Change-Id: I44d8f2b95f5cb339e77e8a705a94bcb16e62beb9
Reviewed-on: https://go-review.googlesource.com/c/go/+/294034
Trust: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
src/cmd/compile/internal/typecheck/const.go
test/fixedbugs/issue44432.go [new file with mode: 0644]