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