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:
parent
72bd1a7e36
commit
ff52cadc01
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user