mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
Add the rest of the stock attributes to the attribute table.
This won't affect the kinds of hashes we test for as we actually do hashing based on form and attribute. Change the fission-hash testcase one last time to handle DW_AT_comp_dir. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189840 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -119,8 +119,146 @@ void DIEHash::collectAttributes(DIE *Die, DIEAttrs &Attrs) {
|
||||
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;
|
||||
@@ -145,7 +283,8 @@ void DIEHash::hashAttribute(AttrEntry Attr) {
|
||||
|
||||
// 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;
|
||||
@@ -168,9 +307,56 @@ void DIEHash::hashAttributes(const DIEAttrs &Attrs) {
|
||||
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.
|
||||
|
Reference in New Issue
Block a user