cmd/compile: don't crash while reporting invalid alias cycle

Add a missing nil check in the formatting code for expression
nodes. Matches the nil checks in the same code.

Fixes #48301.

Change-Id: Ia9bfd3535254a94996ee190b544d95e15433d252
Reviewed-on: https://go-review.googlesource.com/c/go/+/348740
Trust: Robert Griesemer <gri@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
This commit is contained in:
Robert Griesemer 2021-09-09 14:42:42 -07:00
parent 426ff3746f
commit 1a708bcf1d
2 changed files with 14 additions and 1 deletions

View file

@ -559,7 +559,7 @@ func exprFmt(n Node, s fmt.State, prec int) {
}
nprec := OpPrec[n.Op()]
if n.Op() == OTYPE && n.Type().IsPtr() {
if n.Op() == OTYPE && n.Type() != nil && n.Type().IsPtr() {
nprec = OpPrec[ODEREF]
}

View file

@ -0,0 +1,13 @@
// errorcheck -G=0
// Copyright 2021 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.
// Don't crash while reporting the error.
package p
func _() {
type T = T // ERROR "T uses T"
}