aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/8l/obj.c
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2009-08-13 15:45:58 -0700
committerRuss Cox <rsc@golang.org>2009-08-13 15:45:58 -0700
commit45ce825544e2aec385cafbc2a8c29dfb9dce487c (patch)
tree55a621d8d76ba524d3653c5511862df568153a87 /src/cmd/8l/obj.c
parent8149a8c666a79e2dc8898fcc8debbc2bc3626638 (diff)
downloadgo-45ce825544e2aec385cafbc2a8c29dfb9dce487c.tar.xz
debugging symbols for 8g.
backtraces don't work, but they didn't work when i started either. R=ken OCL=33230 CL=33230
Diffstat (limited to 'src/cmd/8l/obj.c')
-rw-r--r--src/cmd/8l/obj.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/cmd/8l/obj.c b/src/cmd/8l/obj.c
index 4aca76736a..a359bfca2a 100644
--- a/src/cmd/8l/obj.c
+++ b/src/cmd/8l/obj.c
@@ -572,19 +572,26 @@ zaddr(Biobuf *f, Adr *a, Sym *h[])
}
if(t & T_TYPE)
a->type = Bgetc(f);
+ if(t & T_GOTYPE)
+ a->gotype = h[Bgetc(f)];
s = a->sym;
if(s == S)
return;
t = a->type;
- if(t != D_AUTO && t != D_PARAM)
+ if(t != D_AUTO && t != D_PARAM) {
+ if(a->gotype)
+ s->gotype = a->gotype;
return;
+ }
l = a->offset;
for(u=curauto; u; u=u->link) {
if(u->asym == s)
if(u->type == t) {
if(u->aoffset > l)
u->aoffset = l;
+ if(a->gotype)
+ u->gotype = a->gotype;
return;
}
}
@@ -595,6 +602,7 @@ zaddr(Biobuf *f, Adr *a, Sym *h[])
u->asym = s;
u->aoffset = l;
u->type = t;
+ u->gotype = a->gotype;
}
void