Save value of AttrName in .Name for all types The original value of the name attribute is usually better than what the String method reconstructs. Change-Id: I271af53933c241a25878718f0bf519a1dacf5d9b Reviewed-on: https://go-review.googlesource.com/23085 Reviewed-by: jcd . <jcd@golang.org>
diff --git a/dwarf/type.go b/dwarf/type.go index dfe9d6a..ae1a3f3 100644 --- a/dwarf/type.go +++ b/dwarf/type.go
@@ -444,6 +444,7 @@ // TagSubrangeType or TagEnumerationType giving one dimension. // dimensions are in left to right order. t := new(ArrayType) + t.Name, _ = e.Val(AttrName).(string) t.ReflectKind = getKind(e) typ = t typeCache[off] = t @@ -592,6 +593,7 @@ case TagUnionType: t.Kind = "union" } + t.Name, _ = e.Val(AttrName).(string) t.StructName, _ = e.Val(AttrName).(string) t.Incomplete = e.Val(AttrDeclaration) != nil t.Field = make([]*StructField, 0, 8) @@ -672,6 +674,7 @@ // Attributes: // AttrType: subtype t := new(QualType) + t.Name, _ = e.Val(AttrName).(string) t.ReflectKind = getKind(e) typ = t typeCache[off] = t @@ -700,6 +703,7 @@ t.ReflectKind = getKind(e) typ = t typeCache[off] = t + t.Name, _ = e.Val(AttrName).(string) t.EnumName, _ = e.Val(AttrName).(string) t.Val = make([]*EnumValue, 0, 8) for kid := next(); kid != nil; kid = next() { @@ -724,6 +728,7 @@ // AttrType: subtype [not required! void* has no AttrType] // AttrAddrClass: address class [ignored] t := new(PtrType) + t.Name, _ = e.Val(AttrName).(string) t.ReflectKind = getKind(e) typ = t typeCache[off] = t @@ -744,6 +749,7 @@ // AttrType: type of parameter // TagUnspecifiedParameter: final ... t := new(FuncType) + t.Name, _ = e.Val(AttrName).(string) t.ReflectKind = getKind(e) typ = t typeCache[off] = t