1
0
mirror of https://github.com/golang/go synced 2024-11-18 15:04:44 -07:00

cmd/ld: refine test for history stack pop (fix Windows build)

This should fix the Windows build, or at least
what's breaking it at the moment.

Fixes #5904.

TBR=golang-dev
CC=golang-dev
https://golang.org/cl/11519044
This commit is contained in:
Russ Cox 2013-07-18 11:40:59 -04:00
parent 72bd1a7e36
commit ff52cadc01

View File

@ -2112,10 +2112,20 @@ savehist(int32 line, int32 off)
Sym *file;
Hist *h;
tmp[0] = '\0';
copyhistfrog(tmp, sizeof tmp);
if(tmp[0]) {
// NOTE(rsc): We used to do the copyhistfrog first and this
// condition was if(tmp[0] != '\0') to check for an empty string,
// implying that histfrogp == 0, implying that this is a history pop.
// However, on Windows in the misc/cgo test, the linker is
// presented with an ANAME corresponding to an empty string,
// that ANAME ends up being the only histfrog, and thus we have
// a situation where histfrogp > 0 (not a pop) but the path we find
// is the empty string. Really that shouldn't happen, but it doesn't
// seem to be bothering anyone yet, and it's easier to fix the condition
// to test histfrogp than to track down where that empty string is
// coming from. Probably it is coming from go tool pack's P command.
if(histfrogp > 0) {
tmp[0] = '\0';
copyhistfrog(tmp, sizeof tmp);
file = lookup(tmp, HistVersion);
if(file->type != SFILEPATH) {
file->value = ++nhistfile;