summaryrefslogtreecommitdiff
path: root/src/cmd/6g/obj.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/6g/obj.c')
-rw-r--r--src/cmd/6g/obj.c11
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;