case dwarf::DW_AT_name:
COLLECT_ATTR(DW_AT_name);
break;
- case dwarf::DW_AT_language:
- COLLECT_ATTR(DW_AT_language);
+ case dwarf::DW_AT_accessibility:
+ COLLECT_ATTR(DW_AT_accessibility)
+ break;
+ case dwarf::DW_AT_address_class:
+ COLLECT_ATTR(DW_AT_address_class)
+ break;
+ case dwarf::DW_AT_allocated:
+ COLLECT_ATTR(DW_AT_allocated)
+ break;
+ case dwarf::DW_AT_artificial:
+ COLLECT_ATTR(DW_AT_artificial)
+ break;
+ case dwarf::DW_AT_associated:
+ COLLECT_ATTR(DW_AT_associated)
+ break;
+ case dwarf::DW_AT_binary_scale:
+ COLLECT_ATTR(DW_AT_binary_scale)
+ break;
+ case dwarf::DW_AT_bit_offset:
+ COLLECT_ATTR(DW_AT_bit_offset)
+ break;
+ case dwarf::DW_AT_bit_size:
+ COLLECT_ATTR(DW_AT_bit_size)
+ break;
+ case dwarf::DW_AT_bit_stride:
+ COLLECT_ATTR(DW_AT_bit_stride)
+ break;
+ case dwarf::DW_AT_byte_size:
+ COLLECT_ATTR(DW_AT_byte_size)
+ break;
+ case dwarf::DW_AT_byte_stride:
+ COLLECT_ATTR(DW_AT_byte_stride)
+ break;
+ case dwarf::DW_AT_const_expr:
+ COLLECT_ATTR(DW_AT_const_expr)
+ break;
+ case dwarf::DW_AT_const_value:
+ COLLECT_ATTR(DW_AT_const_value)
+ break;
+ case dwarf::DW_AT_containing_type:
+ COLLECT_ATTR(DW_AT_containing_type)
+ break;
+ case dwarf::DW_AT_count:
+ COLLECT_ATTR(DW_AT_count)
+ break;
+ case dwarf::DW_AT_data_bit_offset:
+ COLLECT_ATTR(DW_AT_data_bit_offset)
+ break;
+ case dwarf::DW_AT_data_location:
+ COLLECT_ATTR(DW_AT_data_location)
+ break;
+ case dwarf::DW_AT_data_member_location:
+ COLLECT_ATTR(DW_AT_data_member_location)
+ break;
+ case dwarf::DW_AT_decimal_scale:
+ COLLECT_ATTR(DW_AT_decimal_scale)
+ break;
+ case dwarf::DW_AT_decimal_sign:
+ COLLECT_ATTR(DW_AT_decimal_sign)
+ break;
+ case dwarf::DW_AT_default_value:
+ COLLECT_ATTR(DW_AT_default_value)
+ break;
+ case dwarf::DW_AT_digit_count:
+ COLLECT_ATTR(DW_AT_digit_count)
+ break;
+ case dwarf::DW_AT_discr:
+ COLLECT_ATTR(DW_AT_discr)
+ break;
+ case dwarf::DW_AT_discr_list:
+ COLLECT_ATTR(DW_AT_discr_list)
+ break;
+ case dwarf::DW_AT_discr_value:
+ COLLECT_ATTR(DW_AT_discr_value)
+ break;
+ case dwarf::DW_AT_encoding:
+ COLLECT_ATTR(DW_AT_encoding)
+ break;
+ case dwarf::DW_AT_enum_class:
+ COLLECT_ATTR(DW_AT_enum_class)
+ break;
+ case dwarf::DW_AT_endianity:
+ COLLECT_ATTR(DW_AT_endianity)
+ break;
+ case dwarf::DW_AT_explicit:
+ COLLECT_ATTR(DW_AT_explicit)
+ break;
+ case dwarf::DW_AT_is_optional:
+ COLLECT_ATTR(DW_AT_is_optional)
+ break;
+ case dwarf::DW_AT_location:
+ COLLECT_ATTR(DW_AT_location)
+ break;
+ case dwarf::DW_AT_lower_bound:
+ COLLECT_ATTR(DW_AT_lower_bound)
+ break;
+ case dwarf::DW_AT_mutable:
+ COLLECT_ATTR(DW_AT_mutable)
+ break;
+ case dwarf::DW_AT_ordering:
+ COLLECT_ATTR(DW_AT_ordering)
+ break;
+ case dwarf::DW_AT_picture_string:
+ COLLECT_ATTR(DW_AT_picture_string)
+ break;
+ case dwarf::DW_AT_prototyped:
+ COLLECT_ATTR(DW_AT_prototyped)
+ break;
+ case dwarf::DW_AT_small:
+ COLLECT_ATTR(DW_AT_small)
+ break;
+ case dwarf::DW_AT_segment:
+ COLLECT_ATTR(DW_AT_segment)
+ break;
+ case dwarf::DW_AT_string_length:
+ COLLECT_ATTR(DW_AT_string_length)
+ break;
+ case dwarf::DW_AT_threads_scaled:
+ COLLECT_ATTR(DW_AT_threads_scaled)
+ break;
+ case dwarf::DW_AT_upper_bound:
+ COLLECT_ATTR(DW_AT_upper_bound)
+ break;
+ case dwarf::DW_AT_use_location:
+ COLLECT_ATTR(DW_AT_use_location)
+ break;
+ case dwarf::DW_AT_use_UTF8:
+ COLLECT_ATTR(DW_AT_use_UTF8)
+ break;
+ case dwarf::DW_AT_variable_parameter:
+ COLLECT_ATTR(DW_AT_variable_parameter)
+ break;
+ case dwarf::DW_AT_virtuality:
+ COLLECT_ATTR(DW_AT_virtuality)
+ break;
+ case dwarf::DW_AT_visibility:
+ COLLECT_ATTR(DW_AT_visibility)
+ break;
+ case dwarf::DW_AT_vtable_elem_location:
+ COLLECT_ATTR(DW_AT_vtable_elem_location)
break;
default:
break;
// TODO: Add support for additional forms.
switch (Desc->getForm()) {
- // TODO: We'll want to add DW_FORM_string here if we start emitting them again.
+ // TODO: We'll want to add DW_FORM_string here if we start emitting them
+ // again.
case dwarf::DW_FORM_strp:
addString(cast<DIEString>(Value)->getString());
break;
hashAttribute(ATTR); \
}
- // FIXME: Add the rest.
ADD_ATTR(Attrs.DW_AT_name);
- ADD_ATTR(Attrs.DW_AT_language);
+ ADD_ATTR(Attrs.DW_AT_accessibility);
+ ADD_ATTR(Attrs.DW_AT_address_class);
+ ADD_ATTR(Attrs.DW_AT_allocated);
+ ADD_ATTR(Attrs.DW_AT_artificial);
+ ADD_ATTR(Attrs.DW_AT_associated);
+ ADD_ATTR(Attrs.DW_AT_binary_scale);
+ ADD_ATTR(Attrs.DW_AT_bit_offset);
+ ADD_ATTR(Attrs.DW_AT_bit_size);
+ ADD_ATTR(Attrs.DW_AT_bit_stride);
+ ADD_ATTR(Attrs.DW_AT_byte_size);
+ ADD_ATTR(Attrs.DW_AT_byte_stride);
+ ADD_ATTR(Attrs.DW_AT_const_expr);
+ ADD_ATTR(Attrs.DW_AT_const_value);
+ ADD_ATTR(Attrs.DW_AT_containing_type);
+ ADD_ATTR(Attrs.DW_AT_count);
+ ADD_ATTR(Attrs.DW_AT_data_bit_offset);
+ ADD_ATTR(Attrs.DW_AT_data_location);
+ ADD_ATTR(Attrs.DW_AT_data_member_location);
+ ADD_ATTR(Attrs.DW_AT_decimal_scale);
+ ADD_ATTR(Attrs.DW_AT_decimal_sign);
+ ADD_ATTR(Attrs.DW_AT_default_value);
+ ADD_ATTR(Attrs.DW_AT_digit_count);
+ ADD_ATTR(Attrs.DW_AT_discr);
+ ADD_ATTR(Attrs.DW_AT_discr_list);
+ ADD_ATTR(Attrs.DW_AT_discr_value);
+ ADD_ATTR(Attrs.DW_AT_encoding);
+ ADD_ATTR(Attrs.DW_AT_enum_class);
+ ADD_ATTR(Attrs.DW_AT_endianity);
+ ADD_ATTR(Attrs.DW_AT_explicit);
+ ADD_ATTR(Attrs.DW_AT_is_optional);
+ ADD_ATTR(Attrs.DW_AT_location);
+ ADD_ATTR(Attrs.DW_AT_lower_bound);
+ ADD_ATTR(Attrs.DW_AT_mutable);
+ ADD_ATTR(Attrs.DW_AT_ordering);
+ ADD_ATTR(Attrs.DW_AT_picture_string);
+ ADD_ATTR(Attrs.DW_AT_prototyped);
+ ADD_ATTR(Attrs.DW_AT_small);
+ ADD_ATTR(Attrs.DW_AT_segment);
+ ADD_ATTR(Attrs.DW_AT_string_length);
+ ADD_ATTR(Attrs.DW_AT_threads_scaled);
+ ADD_ATTR(Attrs.DW_AT_upper_bound);
+ ADD_ATTR(Attrs.DW_AT_use_location);
+ ADD_ATTR(Attrs.DW_AT_use_UTF8);
+ ADD_ATTR(Attrs.DW_AT_variable_parameter);
+ ADD_ATTR(Attrs.DW_AT_virtuality);
+ ADD_ATTR(Attrs.DW_AT_visibility);
+ ADD_ATTR(Attrs.DW_AT_vtable_elem_location);
+
+ // FIXME: Add the extended attributes.
}
// Add all of the attributes for \param Die to the hash.
// Collection of all attributes used in hashing a particular DIE.
struct DIEAttrs {
AttrEntry DW_AT_name;
- AttrEntry DW_AT_language;
+ AttrEntry DW_AT_accessibility;
+ AttrEntry DW_AT_address_class;
+ AttrEntry DW_AT_allocated;
+ AttrEntry DW_AT_artificial;
+ AttrEntry DW_AT_associated;
+ AttrEntry DW_AT_binary_scale;
+ AttrEntry DW_AT_bit_offset;
+ AttrEntry DW_AT_bit_size;
+ AttrEntry DW_AT_bit_stride;
+ AttrEntry DW_AT_byte_size;
+ AttrEntry DW_AT_byte_stride;
+ AttrEntry DW_AT_const_expr;
+ AttrEntry DW_AT_const_value;
+ AttrEntry DW_AT_containing_type;
+ AttrEntry DW_AT_count;
+ AttrEntry DW_AT_data_bit_offset;
+ AttrEntry DW_AT_data_location;
+ AttrEntry DW_AT_data_member_location;
+ AttrEntry DW_AT_decimal_scale;
+ AttrEntry DW_AT_decimal_sign;
+ AttrEntry DW_AT_default_value;
+ AttrEntry DW_AT_digit_count;
+ AttrEntry DW_AT_discr;
+ AttrEntry DW_AT_discr_list;
+ AttrEntry DW_AT_discr_value;
+ AttrEntry DW_AT_encoding;
+ AttrEntry DW_AT_enum_class;
+ AttrEntry DW_AT_endianity;
+ AttrEntry DW_AT_explicit;
+ AttrEntry DW_AT_is_optional;
+ AttrEntry DW_AT_location;
+ AttrEntry DW_AT_lower_bound;
+ AttrEntry DW_AT_mutable;
+ AttrEntry DW_AT_ordering;
+ AttrEntry DW_AT_picture_string;
+ AttrEntry DW_AT_prototyped;
+ AttrEntry DW_AT_small;
+ AttrEntry DW_AT_segment;
+ AttrEntry DW_AT_string_length;
+ AttrEntry DW_AT_threads_scaled;
+ AttrEntry DW_AT_upper_bound;
+ AttrEntry DW_AT_use_location;
+ AttrEntry DW_AT_use_UTF8;
+ AttrEntry DW_AT_variable_parameter;
+ AttrEntry DW_AT_virtuality;
+ AttrEntry DW_AT_visibility;
+ AttrEntry DW_AT_vtable_elem_location;
+
+ // Insert any additional ones here...
};
public: