diff options
Diffstat (limited to 'src/cmd/6g/obj.c')
-rw-r--r-- | src/cmd/6g/obj.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/cmd/6g/obj.c b/src/cmd/6g/obj.c index ccbf29fb3..28eb6b1c5 100644 --- a/src/cmd/6g/obj.c +++ b/src/cmd/6g/obj.c @@ -476,7 +476,7 @@ dumpsignatures(void) if(t == T) continue; - s = signame(t); + s = signame(t, 0); if(s == S) continue; @@ -485,6 +485,7 @@ dumpsignatures(void) x->dsym = d->dsym; x->dtype = d->dtype; x->forw = signatlist; + x->block = 0; signatlist = x; //print("SIG = %lS %lS %lT\n", d->dsym, s, t); } @@ -531,11 +532,14 @@ dumpsignatures(void) continue; t = d->dtype; - at.sym = signame(t); + at.sym = signame(t, d->block); if(at.sym == S) continue; - if(!at.sym->local) + + // make unique + if(at.sym->local != 1) continue; + at.sym->local = 2; //print("SIGNAME = %lS\n", at.sym); @@ -551,7 +555,6 @@ dumpsignatures(void) if(strcmp(s->opackage, package) != 0) continue; - a = nil; o = 0; |