import "fmt"
-const _Class_name = "ClassAddressClassBlockClassConstantClassExprLocClassFlagClassLinePtrClassLocListPtrClassMacPtrClassRangeListPtrClassReferenceClassReferenceSigClassStringClassReferenceAltClassStringAlt"
+const _Class_name = "ClassUnknownClassAddressClassBlockClassConstantClassExprLocClassFlagClassLinePtrClassLocListPtrClassMacPtrClassRangeListPtrClassReferenceClassReferenceSigClassStringClassReferenceAltClassStringAlt"
-var _Class_index = [...]uint8{0, 12, 22, 35, 47, 56, 68, 83, 94, 111, 125, 142, 153, 170, 184}
+var _Class_index = [...]uint8{0, 12, 24, 34, 47, 59, 68, 80, 95, 106, 123, 137, 154, 165, 182, 196}
func (i Class) String() string {
- i -= 1
if i < 0 || i+1 >= Class(len(_Class_index)) {
- return fmt.Sprintf("Class(%d)", i+1)
+ return fmt.Sprintf("Class(%d)", i)
}
return _Class_name[_Class_index[i]:_Class_index[i+1]]
}
if class, ok := attrPtrClass[attr]; ok {
return class
}
- b.error("cannot determine class of unknown attribute with formSecOffset")
- return 0
+ return ClassUnknown
case formExprloc:
return ClassExprLoc
// loclistptr int64 ClassLocListPtr
// macptr int64 ClassMacPtr
// rangelistptr int64 ClassRangeListPtr
+//
+// For unrecognized or vendor-defined attributes, Class may be
+// ClassUnknown.
type Field struct {
Attr Attr
Val interface{}
type Class int
const (
+ // ClassUnknown represents values of unknown DWARF class.
+ ClassUnknown Class = iota
+
// ClassAddress represents values of type uint64 that are
// addresses on the target machine.
- ClassAddress Class = 1 + iota
+ ClassAddress
// ClassBlock represents values of type []byte whose
// interpretation depends on the attribute.