Commit ff52cadc authored by Russ Cox's avatar Russ Cox

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
parent 72bd1a7e
......@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment