aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cmd/compile/internal/gc/fmt.go9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/cmd/compile/internal/gc/fmt.go b/src/cmd/compile/internal/gc/fmt.go
index 2525921c8b..5f108724e0 100644
--- a/src/cmd/compile/internal/gc/fmt.go
+++ b/src/cmd/compile/internal/gc/fmt.go
@@ -579,9 +579,14 @@ func typefmt(t *Type, flag int) string {
buf.WriteString("interface {")
for t1 := t.Type; t1 != nil; t1 = t1.Down {
buf.WriteString(" ")
- if exportname(t1.Sym.Name) {
+ switch {
+ case t1.Sym == nil:
+ // Check first that a symbol is defined for this type.
+ // Wrong interface definitions may have types lacking a symbol.
+ break
+ case exportname(t1.Sym.Name):
buf.WriteString(Sconv(t1.Sym, obj.FmtShort))
- } else {
+ default:
buf.WriteString(Sconv(t1.Sym, obj.FmtUnsigned))
}
buf.WriteString(Tconv(t1.Type, obj.FmtShort))