From ad4efedc6ce317aa9eb1208950daee4c31b023cc Mon Sep 17 00:00:00 2001 From: David Lazar Date: Fri, 9 Dec 2016 12:34:01 -0500 Subject: [dev.inline] cmd/internal/obj: use src.Pos in obj.Prog This will let us use the src.Pos struct to thread inlining information through to obj. Change-Id: I96a16d3531167396988df66ae70f0b729049cc82 Reviewed-on: https://go-review.googlesource.com/34195 Run-TryBot: David Lazar TryBot-Result: Gobot Gobot Reviewed-by: Robert Griesemer Reviewed-by: Austin Clements --- src/cmd/internal/obj/link.go | 3 ++- src/cmd/internal/obj/pcln.go | 4 ++-- src/cmd/internal/obj/util.go | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) (limited to 'src/cmd/internal') diff --git a/src/cmd/internal/obj/link.go b/src/cmd/internal/obj/link.go index 2ab2aec926..e428d1747d 100644 --- a/src/cmd/internal/obj/link.go +++ b/src/cmd/internal/obj/link.go @@ -32,6 +32,7 @@ package obj import ( "bufio" + "cmd/internal/src" "cmd/internal/sys" "fmt" ) @@ -238,7 +239,7 @@ type Prog struct { Forwd *Prog // for x86 back end Rel *Prog // for x86, arm back ends Pc int64 // for back ends or assembler: virtual or actual program counter, depending on phase - Lineno int32 // line number of this instruction + Lineno src.Pos // line number of this instruction Spadj int32 // effect of instruction on stack pointer (increment or decrement amount) As As // assembler opcode Reg int16 // 2nd source operand diff --git a/src/cmd/internal/obj/pcln.go b/src/cmd/internal/obj/pcln.go index d9893e42cd..408bb2bfe7 100644 --- a/src/cmd/internal/obj/pcln.go +++ b/src/cmd/internal/obj/pcln.go @@ -138,10 +138,10 @@ func funcpctab(ctxt *Link, dst *Pcdata, func_ *LSym, desc string, valfunc func(* // Because p->lineno applies to p, phase == 0 (before p) // takes care of the update. func pctofileline(ctxt *Link, sym *LSym, oldval int32, p *Prog, phase int32, arg interface{}) int32 { - if p.As == ATEXT || p.As == ANOP || p.As == AUSEFIELD || p.Lineno == 0 || phase == 1 { + if p.As == ATEXT || p.As == ANOP || p.As == AUSEFIELD || p.Lineno.Line() == 0 || phase == 1 { return oldval } - f, l := linkgetline(ctxt, p.Lineno) + f, l := linkgetline(ctxt, p.Lineno.Line()) if f == nil { // print("getline failed for %s %v\n", ctxt->cursym->name, p); return oldval diff --git a/src/cmd/internal/obj/util.go b/src/cmd/internal/obj/util.go index bc5d1c5d5a..472e13bc44 100644 --- a/src/cmd/internal/obj/util.go +++ b/src/cmd/internal/obj/util.go @@ -59,7 +59,7 @@ func Getgoextlinkenabled() string { } func (p *Prog) Line() string { - return p.Ctxt.LineHist.LineString(int(p.Lineno)) + return p.Ctxt.LineHist.LineString(int(p.Lineno.Line())) } var armCondCode = []string{ -- cgit v1.3-6-g1900