Commit 0be746d5 authored by Russ Cox's avatar Russ Cox

fix method function type compare bug

R=ken
OCL=17815
CL=17815
parent 63ed2b71
...@@ -279,8 +279,10 @@ addmethod(Node *n, Type *t, int local) ...@@ -279,8 +279,10 @@ addmethod(Node *n, Type *t, int local)
d = f; d = f;
continue; continue;
} }
if(!eqtype(t, f->type, 0)) if(!eqtype(t, f->type, 0)) {
yyerror("method redeclared: %S of type %S", sf, st); yyerror("method redeclared: %S of type %S", sf, st);
print("\t%T\n\t%T\n", f->type, t);
}
return; return;
} }
...@@ -340,7 +342,8 @@ funchdr(Node *n) ...@@ -340,7 +342,8 @@ funchdr(Node *n)
if(!eqargs(n->type, on->type)) if(!eqargs(n->type, on->type))
yyerror("forward declarations not the same: %S", s); yyerror("forward declarations not the same: %S", s);
} else { } else {
yyerror("redeclare of function: %S", s); yyerror("function redeclared: %S", s);
print("\t%T\n\t%T\n", on->type, n->type);
on = N; on = N;
} }
} }
......
...@@ -1773,7 +1773,7 @@ eqtype(Type *t1, Type *t2, int d) ...@@ -1773,7 +1773,7 @@ eqtype(Type *t1, Type *t2, int d)
if(t1->etype != TSTRUCT || t2->etype != TSTRUCT) if(t1->etype != TSTRUCT || t2->etype != TSTRUCT)
return 0; return 0;
if(!eqtype(t1->type, t2->type, 0)) if(!eqtype(t1, t2, 0))
return 0; return 0;
t1 = t1->down; t1 = t1->down;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment