]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: don't attach lines to SB, SP, similar constants
authorDavid Chase <drchase@google.com>
Mon, 15 May 2017 17:49:30 +0000 (13:49 -0400)
committerDavid Chase <drchase@google.com>
Mon, 15 May 2017 20:39:40 +0000 (20:39 +0000)
Attaching positions to SB, SP, initial mem can result in
less-good line-numbering when compiled for debugging.
This "fix" also removes source position from a zero-valued
struct (but not from its fields) and from a zero-length
array constant.

This may be a general problem for constants in entry blocks.

Fixes #20367.

Change-Id: I7e9df3341be2e2f60f127d35bb31e43cdcfce9a1
Reviewed-on: https://go-review.googlesource.com/43531
Run-TryBot: David Chase <drchase@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
src/cmd/compile/internal/gc/ssa.go

index 5feb8f39212f95ebc988913b8822ba1bdfff99f1..94c1bd57066ecb9870a2aa6e5babe0d2eb200949 100644 (file)
@@ -434,7 +434,7 @@ func (s *state) newValue4(op ssa.Op, t *types.Type, arg0, arg1, arg2, arg3 *ssa.
 
 // entryNewValue0 adds a new value with no arguments to the entry block.
 func (s *state) entryNewValue0(op ssa.Op, t *types.Type) *ssa.Value {
-       return s.f.Entry.NewValue0(s.peekPos(), op, t)
+       return s.f.Entry.NewValue0(src.NoXPos, op, t)
 }
 
 // entryNewValue0A adds a new value with no arguments and an aux value to the entry block.
@@ -442,11 +442,6 @@ func (s *state) entryNewValue0A(op ssa.Op, t *types.Type, aux interface{}) *ssa.
        return s.f.Entry.NewValue0A(s.peekPos(), op, t, aux)
 }
 
-// entryNewValue0I adds a new value with no arguments and an auxint value to the entry block.
-func (s *state) entryNewValue0I(op ssa.Op, t *types.Type, auxint int64) *ssa.Value {
-       return s.f.Entry.NewValue0I(s.peekPos(), op, t, auxint)
-}
-
 // entryNewValue1 adds a new value with one argument to the entry block.
 func (s *state) entryNewValue1(op ssa.Op, t *types.Type, arg *ssa.Value) *ssa.Value {
        return s.f.Entry.NewValue1(s.peekPos(), op, t, arg)