diff options
| author | Russ Cox <rsc@golang.org> | 2011-04-14 10:42:48 -0400 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2011-04-14 10:42:48 -0400 |
| commit | bd43a2d9ff53c0cda30571df8241dcefb9bf6b88 (patch) | |
| tree | 91e0235293360bd92013db779182acf33926ebbc /src/cmd/6l/obj.c | |
| parent | 36713a2a53b91e6fbf08af9ee583f49449857a33 (diff) | |
| download | go-bd43a2d9ff53c0cda30571df8241dcefb9bf6b88.tar.xz | |
ld: defend against some broken object files
Fixes #1698.
Fixes #1699.
R=ken2
CC=golang-dev
https://golang.org/cl/4419041
Diffstat (limited to 'src/cmd/6l/obj.c')
| -rw-r--r-- | src/cmd/6l/obj.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/cmd/6l/obj.c b/src/cmd/6l/obj.c index 6b43d2df43..9e35fa5630 100644 --- a/src/cmd/6l/obj.c +++ b/src/cmd/6l/obj.c @@ -356,6 +356,15 @@ zaddr(char *pn, Biobuf *f, Adr *a, Sym *h[]) return; } } + + switch(t) { + case D_FILE: + case D_FILE1: + case D_AUTO: + case D_PARAM: + if(s == S) + mangle(pn); + } u = mal(sizeof(*u)); u->link = curauto; @@ -559,7 +568,7 @@ loop: diag("multiple initialization for %s: in both %s and %s", s->name, s->file, pn); errorexit(); } - savedata(s, p); + savedata(s, p, pn); unmal(p, sizeof *p); goto loop; |
