From: Ian Lance Taylor Date: Fri, 20 Apr 2012 18:44:09 +0000 (+0000) Subject: debug/dwarf: Fix address lookups for different types of lines. X-Git-Tag: misc/gccgo-go1_1_2~3386 X-Git-Url: https://gcc.gnu.org/git/?a=commitdiff_plain;h=76c0db73915571cac056bd054e8a59a57ec784f8;p=gcc.git debug/dwarf: Fix address lookups for different types of lines. This fixes the lookup when, e.g., discriminators force adding new line arrays. From-SVN: r186633 --- diff --git a/libgo/go/debug/dwarf/line.go b/libgo/go/debug/dwarf/line.go index f9c77cc87e46..52c3b114da33 100644 --- a/libgo/go/debug/dwarf/line.go +++ b/libgo/go/debug/dwarf/line.go @@ -415,6 +415,10 @@ func (d *Data) addLine(lines []mapLineInfo, lineInfo Line, address uint64, line if newLineInfo { if len(lines) > 0 { sort.Sort(lines[len(lines)-1].addrs) + p := &lines[len(lines)-1] + if len(p.addrs) > 0 && address > p.addrs[len(p.addrs)-1].pc { + p.addrs = append(p.addrs, oneLineInfo{address, p.addrs[len(p.addrs)-1].line}) + } } lines = append(lines, mapLineInfo{line: lineInfo}) }