diff options
| author | Russ Cox <rsc@golang.org> | 2008-11-05 11:27:50 -0800 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2008-11-05 11:27:50 -0800 |
| commit | 1983121bbb5d8cb346c1baef18e3dc1a2cbfee10 (patch) | |
| tree | f3c233209ab5131760a45e54f4314388b4cfe1cc /src/cmd/6l/obj.c | |
| parent | 6cd74b03f38de40d84d1d9efe8663714ccfaaee5 (diff) | |
| download | go-1983121bbb5d8cb346c1baef18e3dc1a2cbfee10.tar.xz | |
6g interface changes:
* allow conversion between nil interface and any type.
* mark signatures as DUPOK so that multiple .6 can
contain sigt.*[]byte and only one gets used.
R=ken
OCL=18538
CL=18542
Diffstat (limited to 'src/cmd/6l/obj.c')
| -rw-r--r-- | src/cmd/6l/obj.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/cmd/6l/obj.c b/src/cmd/6l/obj.c index 8c001e7481..bc7413fe15 100644 --- a/src/cmd/6l/obj.c +++ b/src/cmd/6l/obj.c @@ -972,6 +972,8 @@ loop: } if(p->to.offset > s->value) s->value = p->to.offset; + if(p->from.scale & DUPOK) + s->dupok = 1; goto loop; case ADYNT: @@ -1017,6 +1019,12 @@ loop: case ADATA: data: + // Assume that AGLOBL comes after ADATA. + // 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) + goto loop; if(edatap == P) datap = p; else |
