]> Cypherpunks repositories - gostls13.git/commit
cmd/compile/internal/types2: don't crash in overflow check
authorRobert Griesemer <gri@golang.org>
Tue, 19 Apr 2022 01:43:22 +0000 (18:43 -0700)
committerRobert Griesemer <gri@golang.org>
Tue, 19 Apr 2022 23:20:17 +0000 (23:20 +0000)
commit302f5ed21dad2cb99f3f63fd99228dc3ab480772
treed02bf4b99fd5fc7ede5a788e86e3b64733bed0ee
parent86fa2551fb12338405721089d6db1b9d78e4f05e
cmd/compile/internal/types2: don't crash in overflow check

Be careful before accessing an operand's expr field (which may
be nil in some rare cases).

While at it, factor out position information so that it's only
computed when there's an error, which is almost never.

In go/types, remove an unnecessary argument to Checker.overflow.
The code is otherwise ok as it's structured slightly differently
due to the way positions are recorded in AST nodes.

Fixes #52401.

Change-Id: I447ebd9bb0c33eb6bff5e7b4d5aee37ceb0a4b14
Reviewed-on: https://go-review.googlesource.com/c/go/+/400798
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Robert Griesemer <gri@google.com>
src/cmd/compile/internal/types2/expr.go
src/cmd/compile/internal/types2/testdata/fixedbugs/issue52401.go [new file with mode: 0644]
src/go/types/expr.go
src/go/types/testdata/fixedbugs/issue52401.go [new file with mode: 0644]