From 64d2a7c8945ba05af859901f5e248f1befdd8621 Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Tue, 3 Dec 2013 09:43:15 +0100 Subject: Imported Upstream version 1.2 --- src/cmd/gc/export.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/cmd/gc/export.c') diff --git a/src/cmd/gc/export.c b/src/cmd/gc/export.c index caac330d5..31bcdf8e7 100644 --- a/src/cmd/gc/export.c +++ b/src/cmd/gc/export.c @@ -44,7 +44,7 @@ initname(char *s) return strcmp(s, "init") == 0; } -// exportedsym returns whether a symbol will be visible +// exportedsym reports whether a symbol will be visible // to files that import our package. static int exportedsym(Sym *sym) @@ -481,9 +481,10 @@ importvar(Sym *s, Type *t) if(s->def != N && s->def->op == ONAME) { if(eqtype(t, s->def->type)) return; - yyerror("inconsistent definition for var %S during import\n\t%T\n\t%T", s, s->def->type, t); + yyerror("inconsistent definition for var %S during import\n\t%T (in \"%Z\")\n\t%T (in \"%Z\")", s, s->def->type, s->importdef->path, t, importpkg->path); } n = newname(s); + s->importdef = importpkg; n->type = t; declare(n, PEXTERN); @@ -509,11 +510,12 @@ importtype(Type *pt, Type *t) n = pt->nod; copytype(pt->nod, t); pt->nod = n; // unzero nod + pt->sym->importdef = importpkg; pt->sym->lastlineno = parserline(); declare(n, PEXTERN); checkwidth(pt); } else if(!eqtype(pt->orig, t)) - yyerror("inconsistent definition for type %S during import\n\t%lT\n\t%lT", pt->sym, pt, t); + yyerror("inconsistent definition for type %S during import\n\t%lT (in \"%Z\")\n\t%lT (in \"%Z\")", pt->sym, pt, pt->sym->importdef->path, t, importpkg->path); if(debug['E']) print("import type %T %lT\n", pt, t); -- cgit v1.2.3