• David Chase's avatar
    cmd/compile: use src.NoXPos for entry-block constants · f22cf713
    David Chase authored
    The ssa backend is aggressive about placing constants and
    certain other values in the Entry block.  It's implausible
    that the original line numbers for these constants makes
    any sort of sense when it appears to a user stepping in a
    debugger, and they're also not that useful in dumps since
    entry-block instructions tend to be constants (i.e.,
    unlikely to be the cause of a crash).
    
    Therefore, use src.NoXPos for any values that are explicitly
    inserted into a function's entry block.
    
    Passes all tests, including ssa/debug_test.go with both
    gdb and a fairly recent dlv.  Hand-verified that it solves
    the reported problem; constructed a test that reproduced
    a problem, and fixed it.
    
    Modified test harness to allow injection of slightly more
    interesting inputs.
    
    Fixes #22558.
    
    Change-Id: I4476927067846bc4366da7793d2375c111694c55
    Reviewed-on: https://go-review.googlesource.com/81215
    Run-TryBot: David Chase <drchase@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarKeith Randall <khr@golang.org>
    f22cf713
Name
Last commit
Last update
..
archive Loading commit data...
bufio Loading commit data...
builtin Loading commit data...
bytes Loading commit data...
cmd Loading commit data...
compress Loading commit data...
container Loading commit data...
context Loading commit data...
crypto Loading commit data...
database/sql Loading commit data...
debug Loading commit data...
encoding Loading commit data...
errors Loading commit data...
expvar Loading commit data...
flag Loading commit data...
fmt Loading commit data...
go Loading commit data...
hash Loading commit data...
html Loading commit data...
image Loading commit data...
index/suffixarray Loading commit data...
internal Loading commit data...
io Loading commit data...
log Loading commit data...
math Loading commit data...
mime Loading commit data...
net Loading commit data...
os Loading commit data...
path Loading commit data...
plugin Loading commit data...
reflect Loading commit data...
regexp Loading commit data...
runtime Loading commit data...
sort Loading commit data...
strconv Loading commit data...
strings Loading commit data...
sync Loading commit data...
syscall Loading commit data...
testing Loading commit data...
text Loading commit data...
time Loading commit data...
unicode Loading commit data...
unsafe Loading commit data...
vendor/golang_org/x Loading commit data...
Make.dist Loading commit data...
all.bash Loading commit data...
all.bat Loading commit data...
all.rc Loading commit data...
androidtest.bash Loading commit data...
bootstrap.bash Loading commit data...
buildall.bash Loading commit data...
clean.bash Loading commit data...
clean.bat Loading commit data...
clean.rc Loading commit data...
cmp.bash Loading commit data...
iostest.bash Loading commit data...
make.bash Loading commit data...
make.bat Loading commit data...
make.rc Loading commit data...
naclmake.bash Loading commit data...
nacltest.bash Loading commit data...
race.bash Loading commit data...
race.bat Loading commit data...
run.bash Loading commit data...
run.bat Loading commit data...
run.rc Loading commit data...