mirror of
https://github.com/golang/go
synced 2024-11-12 05:40:22 -07:00
6l: ignore undefined symbols in gotypesigs.
they end up in the symbol table with type==0 if they are in a library but not pulled in. also add a few debugging prints. R=r DELTA=11 (5 added, 1 deleted, 5 changed) OCL=23104 CL=23108
This commit is contained in:
parent
b74e3b95cf
commit
8f14451fe5
@ -455,13 +455,13 @@ definetypesigs(void)
|
||||
n = 0;
|
||||
for(i=0; i<NHASH; i++)
|
||||
for(x = hash[i]; x; x=x->link)
|
||||
if(memcmp(x->name, "sigt·", 6) == 0)
|
||||
if(memcmp(x->name, "sigt·", 6) == 0 && x->type != Sxxx)
|
||||
n++;
|
||||
all = mal(n*sizeof all[0]);
|
||||
j = 0;
|
||||
for(i=0; i<NHASH; i++)
|
||||
for(x = hash[i]; x; x=x->link)
|
||||
if(memcmp(x->name, "sigt·", 6) == 0)
|
||||
if(memcmp(x->name, "sigt·", 6) == 0 && x->type != Sxxx)
|
||||
all[j++] = x;
|
||||
|
||||
// sort them by name
|
||||
@ -488,5 +488,4 @@ definetypesigs(void)
|
||||
|
||||
if(debug['v'])
|
||||
Bprint(&bso, "%5.2f typesigs %d\n", cputime(), n);
|
||||
|
||||
}
|
||||
|
@ -1063,8 +1063,11 @@ loop:
|
||||
// If we've seen an AGLOBL that said this sym was DUPOK,
|
||||
// ignore any more ADATA we see, which must be
|
||||
// redefinitions.
|
||||
if(p->from.sym != S && p->from.sym->dupok)
|
||||
if(p->from.sym != S && p->from.sym->dupok) {
|
||||
if(debug['v'])
|
||||
Bprint(&bso, "skipping %s in %s: dupok", p->from.sym->name, pn);
|
||||
goto loop;
|
||||
}
|
||||
if(edatap == P)
|
||||
datap = p;
|
||||
else
|
||||
@ -1083,7 +1086,7 @@ loop:
|
||||
if(ntext++ == 0 && s->type != 0 && s->type != SXREF) {
|
||||
/* redefinition, so file has probably been seen before */
|
||||
if(debug['v'])
|
||||
diag("skipping: %s: redefinition: %s", pn, s->name);
|
||||
Bprint(&bso, "skipping: %s: redefinition: %s", pn, s->name);
|
||||
return;
|
||||
}
|
||||
if(curtext != P) {
|
||||
@ -1260,6 +1263,8 @@ lookup(char *symb, int v)
|
||||
return s;
|
||||
|
||||
s = mal(sizeof(*s));
|
||||
if(debug['v'] > 1)
|
||||
Bprint(&bso, "lookup %s\n", symb);
|
||||
|
||||
s->name = malloc(l + 1);
|
||||
memmove(s->name, symb, l);
|
||||
|
Loading…
Reference in New Issue
Block a user