cmd/gc: fix internal compiler error with broken structs.

Fixes #4359.

R=golang-dev, daniel.morsing, rsc
CC=golang-dev
https://golang.org/cl/6834043
This commit is contained in:
Rémy Oudompheng 2012-11-07 23:09:01 +01:00
parent 0ac317817b
commit c208a3a263
2 changed files with 20 additions and 1 deletions

View file

@ -443,7 +443,7 @@ reswitch:
ok |= Etype;
n->op = OTYPE;
n->type = tostruct(n->list);
if(n->type == T)
if(n->type == T || n->type->broke)
goto error;
n->list = nil;
break;

View file

@ -0,0 +1,19 @@
// errorcheck
// Copyright 2012 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.
// Issue 4359: wrong handling of broken struct fields
// causes "internal compiler error: lookdot badwidth".
package main
type T struct {
x T1 // ERROR "undefined"
}
func f() {
var t *T
_ = t.x
}