From: Daniel Morsing Date: Tue, 11 Dec 2012 16:36:10 +0000 (+0100) Subject: cmd/gc: remove bad check for BADWIDTH X-Git-Tag: go1.1rc2~1675 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=0d22573f6e053ae12c09d65a8b7c4d5b604317fb;p=gostls13.git cmd/gc: remove bad check for BADWIDTH This check for BADWIDTH might happen while in defercheckwidth, making it raise errors for non-erroneous situations. Fixes #4495. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/6927043 --- diff --git a/src/cmd/gc/typecheck.c b/src/cmd/gc/typecheck.c index 78e2047a6e..425ee50d17 100644 --- a/src/cmd/gc/typecheck.c +++ b/src/cmd/gc/typecheck.c @@ -1791,8 +1791,6 @@ looktypedot(Node *n, Type *t, int dostrcmp) if(f1 == T) return 0; - if(f1->width == BADWIDTH) - fatal("lookdot badwidth %T %p", f1, f1); n->right = methodname(n->right, t); n->xoffset = f1->width; n->type = f1->type; diff --git a/test/fixedbugs/issue4495.go b/test/fixedbugs/issue4495.go new file mode 100644 index 0000000000..7ec1134d7b --- /dev/null +++ b/test/fixedbugs/issue4495.go @@ -0,0 +1,29 @@ +// run + +// 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. + +package main + +type I interface { + m() int +} + +type T struct{} + +func (T) m() int { + return 3 +} + +var t T + +var ret = I.m(t) + +func main() { + if ret != 3 { + println("ret = ", ret) + panic("ret != 3") + } +} +