]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/gc: remove bad check for BADWIDTH
authorDaniel Morsing <daniel.morsing@gmail.com>
Tue, 11 Dec 2012 16:36:10 +0000 (17:36 +0100)
committerDaniel Morsing <daniel.morsing@gmail.com>
Tue, 11 Dec 2012 16:36:10 +0000 (17:36 +0100)
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

src/cmd/gc/typecheck.c
test/fixedbugs/issue4495.go [new file with mode: 0644]

index 78e2047a6e41fc62d678ffbe3497742f3a2950bd..425ee50d171c229b324a0e773ae9c3e1afec07bd 100644 (file)
@@ -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 (file)
index 0000000..7ec1134
--- /dev/null
@@ -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")
+       }
+}
+