Commit 84057372 by Ian Lance Taylor

debug/dwarf: formStrp uses a 64-bit value for 64-bit DWARF

    
    No test as the only system I know that uses 64-bit DWARF is AIX.
    
    Backport of https://golang.org/cl/84379, which will be in Go 1.11.
    Backporting now for AIX support in gccgo.
    
    Reviewed-on: https://go-review.googlesource.com/87296

From-SVN: r256474
parent b33b5363
19d94969c5202c07b3b166079b9f4ebbb52dfa6b 1176dd2b53f2d2b826b599a126f3f9828283cec3
The first line of this file holds the git revision number of the last The first line of this file holds the git revision number of the last
merge done from the gofrontend repository. merge done from the gofrontend repository.
...@@ -461,7 +461,18 @@ func (b *buf) entry(atab abbrevTable, ubase Offset) *Entry { ...@@ -461,7 +461,18 @@ func (b *buf) entry(atab abbrevTable, ubase Offset) *Entry {
case formString: case formString:
val = b.string() val = b.string()
case formStrp: case formStrp:
off := b.uint32() // offset into .debug_str var off uint64 // offset into .debug_str
is64, known := b.format.dwarf64()
if !known {
b.error("unknown size for DW_FORM_strp")
} else if is64 {
off = b.uint64()
} else {
off = uint64(b.uint32())
}
if uint64(int(off)) != off {
b.error("DW_FORM_strp offset out of range")
}
if b.err != nil { if b.err != nil {
return nil return nil
} }
......
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