updatetype(Type *n, Type *t)
{
Sym *s;
- int local;
+ int local, vargen;
int maplineno, lno, etype;
s = n->sym;
// that is no longer associated with n.
maplineno = n->maplineno;
local = n->local;
+ vargen = n->vargen;
*n = *t;
n->sym = s;
n->local = local;
n->siggen = 0;
n->printed = 0;
n->method = nil;
- n->vargen = 0;
+ n->vargen = vargen;
n->nod = N;
// catch declaration of incomplete type
} else if((ndef = forwardfix(x->def, def)) != nil) {
x->def = ndef;
} else {
- fprint(2, "%d: conflicting definitions for %s\n", argv0, name);
+ fprint(2, "%s: conflicting definitions for %s\n", argv0, name);
fprint(2, "%s:\t%s %s %s\n", x->file, x->prefix, name, x->def);
fprint(2, "%s:\t%s %s %s\n", file, prefix, name, def);
nerrors++;
123
BUG: should fail
-=========== bugs/bug167.go
-BUG: bug167
-1606416656: conflicting definitions for main.T·bug167
-bug167.6: type main.T·bug167 struct { x int }
-bug167.6: type main.T·bug167 struct { x float }
-
=========== fixedbugs/bug016.go
fixedbugs/bug016.go:7: constant -3 overflows uint