summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKai Backman <kaib@golang.org>2009-09-17 23:08:15 -0700
committerKai Backman <kaib@golang.org>2009-09-17 23:08:15 -0700
commit94cb5a646b38b4ac3c4b9e04409e6e5a5e6d5056 (patch)
treeaad159a156d148d7218ca166bd0cb69f07bf4827 /src
parent7c1215ed290658292e4c996d02c1f398dddbf422 (diff)
downloadgolang-94cb5a646b38b4ac3c4b9e04409e6e5a5e6d5056.tar.gz
fixing width bug in DATA output. some logging to make fixing
similar issues easier in the future. R=rsc APPROVED=rsc DELTA=6 (1 added, 0 deleted, 5 changed) OCL=34771 CL=34773
Diffstat (limited to 'src')
-rw-r--r--src/cmd/5g/gobj.c7
-rw-r--r--src/cmd/5l/pass.c4
2 files changed, 6 insertions, 5 deletions
diff --git a/src/cmd/5g/gobj.c b/src/cmd/5g/gobj.c
index 6119f14f8..d2c86ad5b 100644
--- a/src/cmd/5g/gobj.c
+++ b/src/cmd/5g/gobj.c
@@ -427,9 +427,10 @@ datagostring(Strlit *sval, Addr *a)
// $string len+ptr
datastring(sval->s, sval->len, &ap);
-
+ ap.name = ap.type;
ap.type = D_CONST;
ap.etype = TINT32;
+
wi = types[TUINT32]->width;
wp = types[tptr]->width;
@@ -470,7 +471,7 @@ datagostring(Strlit *sval, Addr *a)
p->to.offset = sval->len;
p = pc;
- ggloblsym(ao.sym, types[TSTRING]->width, ao.type == D_EXTERN);
+ ggloblsym(ao.sym, types[TSTRING]->width, ao.name == D_EXTERN);
if(ao.name == D_STATIC)
p->from.name = D_STATIC;
text();
@@ -549,7 +550,7 @@ dgostrlitptr(Sym *s, int off, Strlit *lit)
p->from.name = D_EXTERN;
p->from.sym = s;
p->from.offset = off;
- p->from.reg = widthptr;
+ p->reg = widthptr;
datagostring(lit, &p->to);
p->to.type = D_CONST;
p->to.etype = TINT32;
diff --git a/src/cmd/5l/pass.c b/src/cmd/5l/pass.c
index 8387dead1..be0b50afc 100644
--- a/src/cmd/5l/pass.c
+++ b/src/cmd/5l/pass.c
@@ -52,8 +52,8 @@ dodata(void)
s->type, s->name, p);
v = p->from.offset + p->reg;
if(v > s->value)
- diag("initialize bounds (%ld): %s\n%P",
- s->value, s->name, p);
+ diag("initialize bounds (%ld/%ld): %s\n%P",
+ v, s->value, s->name, p);
if((s->type == SBSS || s->type == SDATA) && (p->to.type == D_CONST || p->to.type == D_OCONST) && (p->to.name == D_EXTERN || p->to.name == D_STATIC)){
s = p->to.sym;
if(s != S && (s->type == STEXT || s->type == SLEAF || s->type == SCONST || s->type == SXREF))