From cbf9b7b1778939bba519f3cdb72a8927e9fe111c Mon Sep 17 00:00:00 2001 From: Rene Gollent Date: Tue, 16 Jul 2013 22:34:12 -0400 Subject: [PATCH] Update attribute classes to match DWARF 4. --- src/apps/debugger/dwarf/AttributeClasses.cpp | 51 ++++++++++++-------- 1 file changed, 31 insertions(+), 20 deletions(-) diff --git a/src/apps/debugger/dwarf/AttributeClasses.cpp b/src/apps/debugger/dwarf/AttributeClasses.cpp index 89e5b8b6eb..7e93de93b3 100644 --- a/src/apps/debugger/dwarf/AttributeClasses.cpp +++ b/src/apps/debugger/dwarf/AttributeClasses.cpp @@ -43,12 +43,15 @@ struct attribute_name_info_entry { static const attribute_name_info_entry kAttributeNameInfos[] = { { ENTRY(sibling), AC_REFERENCE }, - { ENTRY(location), AC_BLOCK | AC_LOCLISTPTR }, + { ENTRY(location), AC_BLOCK | AC_EXPRESSION | AC_LOCLISTPTR }, { ENTRY(name), AC_STRING }, { ENTRY(ordering), AC_CONSTANT }, - { ENTRY(byte_size), AC_BLOCK | AC_CONSTANT | AC_REFERENCE }, - { ENTRY(bit_offset), AC_BLOCK | AC_CONSTANT | AC_REFERENCE }, - { ENTRY(bit_size), AC_BLOCK | AC_CONSTANT | AC_REFERENCE }, + { ENTRY(byte_size), AC_BLOCK | AC_EXPRESSION | AC_CONSTANT + | AC_REFERENCE }, + { ENTRY(bit_offset), AC_BLOCK | AC_EXPRESSION | AC_CONSTANT + | AC_REFERENCE }, + { ENTRY(bit_size), AC_BLOCK | AC_EXPRESSION | AC_CONSTANT + | AC_REFERENCE }, { ENTRY(stmt_list), AC_LINEPTR }, { ENTRY(low_pc), AC_ADDRESS }, { ENTRY(high_pc), AC_ADDRESS }, @@ -57,7 +60,7 @@ static const attribute_name_info_entry kAttributeNameInfos[] = { { ENTRY(discr_value), AC_CONSTANT }, { ENTRY(visibility), AC_CONSTANT }, { ENTRY(import), AC_REFERENCE }, - { ENTRY(string_length), AC_BLOCK | AC_LOCLISTPTR }, + { ENTRY(string_length), AC_BLOCK | AC_EXPRESSION | AC_LOCLISTPTR }, { ENTRY(common_reference), AC_REFERENCE }, { ENTRY(comp_dir), AC_STRING }, { ENTRY(const_value), AC_BLOCK | AC_CONSTANT | AC_STRING }, @@ -65,21 +68,26 @@ static const attribute_name_info_entry kAttributeNameInfos[] = { { ENTRY(default_value), AC_REFERENCE }, { ENTRY(inline), AC_CONSTANT }, { ENTRY(is_optional), AC_FLAG }, - { ENTRY(lower_bound), AC_BLOCK | AC_CONSTANT | AC_REFERENCE }, + { ENTRY(lower_bound), AC_BLOCK | AC_EXPRESSION | AC_CONSTANT + | AC_REFERENCE }, { ENTRY(producer), AC_STRING }, { ENTRY(prototyped), AC_FLAG }, - { ENTRY(return_addr), AC_BLOCK | AC_LOCLISTPTR }, + { ENTRY(return_addr), AC_BLOCK | AC_EXPRESSION | AC_LOCLISTPTR }, { ENTRY(start_scope), AC_CONSTANT }, - { ENTRY(bit_stride), AC_CONSTANT }, - { ENTRY(upper_bound), AC_BLOCK | AC_CONSTANT | AC_REFERENCE }, + { ENTRY(bit_stride), AC_CONSTANT | AC_EXPRESSION + | AC_REFERENCE }, + { ENTRY(upper_bound), AC_BLOCK | AC_EXPRESSION | AC_CONSTANT + | AC_REFERENCE }, { ENTRY(abstract_origin), AC_REFERENCE }, { ENTRY(accessibility), AC_CONSTANT }, { ENTRY(address_class), AC_CONSTANT }, { ENTRY(artificial), AC_FLAG }, { ENTRY(base_types), AC_REFERENCE }, { ENTRY(calling_convention), AC_CONSTANT }, - { ENTRY(count), AC_BLOCK | AC_CONSTANT | AC_REFERENCE }, - { ENTRY(data_member_location), AC_BLOCK | AC_CONSTANT | AC_LOCLISTPTR }, + { ENTRY(count), AC_BLOCK | AC_EXPRESSION | AC_CONSTANT + | AC_REFERENCE }, + { ENTRY(data_member_location), AC_BLOCK | AC_EXPRESSION | AC_CONSTANT + | AC_LOCLISTPTR }, { ENTRY(decl_column), AC_CONSTANT }, { ENTRY(decl_file), AC_CONSTANT }, { ENTRY(decl_line), AC_CONSTANT }, @@ -87,24 +95,27 @@ static const attribute_name_info_entry kAttributeNameInfos[] = { { ENTRY(discr_list), AC_BLOCK }, { ENTRY(encoding), AC_CONSTANT }, { ENTRY(external), AC_FLAG }, - { ENTRY(frame_base), AC_BLOCK | AC_LOCLISTPTR }, + { ENTRY(frame_base), AC_BLOCK | AC_EXPRESSION | AC_LOCLISTPTR }, { ENTRY(friend), AC_REFERENCE }, { ENTRY(identifier_case), AC_CONSTANT }, { ENTRY(macro_info), AC_MACPTR }, - { ENTRY(namelist_item), AC_BLOCK }, + { ENTRY(namelist_item), AC_BLOCK | AC_REFERENCE }, { ENTRY(priority), AC_REFERENCE }, - { ENTRY(segment), AC_BLOCK | AC_LOCLISTPTR }, + { ENTRY(segment), AC_BLOCK | AC_EXPRESSION | AC_LOCLISTPTR }, { ENTRY(specification), AC_REFERENCE }, - { ENTRY(static_link), AC_BLOCK | AC_LOCLISTPTR }, + { ENTRY(static_link), AC_BLOCK | AC_EXPRESSION | AC_LOCLISTPTR }, { ENTRY(type), AC_REFERENCE }, - { ENTRY(use_location), AC_BLOCK | AC_LOCLISTPTR }, + { ENTRY(use_location), AC_BLOCK | AC_EXPRESSION | AC_LOCLISTPTR }, { ENTRY(variable_parameter), AC_FLAG }, { ENTRY(virtuality), AC_CONSTANT }, { ENTRY(vtable_elem_location), AC_BLOCK | AC_LOCLISTPTR }, - { ENTRY(allocated), AC_BLOCK | AC_CONSTANT | AC_REFERENCE }, - { ENTRY(associated), AC_BLOCK | AC_CONSTANT | AC_REFERENCE }, - { ENTRY(data_location), AC_BLOCK }, - { ENTRY(byte_stride), AC_BLOCK | AC_CONSTANT | AC_REFERENCE }, + { ENTRY(allocated), AC_BLOCK | AC_EXPRESSION | AC_CONSTANT + | AC_REFERENCE }, + { ENTRY(associated), AC_BLOCK | AC_EXPRESSION | AC_CONSTANT + | AC_REFERENCE }, + { ENTRY(data_location), AC_BLOCK | AC_EXPRESSION }, + { ENTRY(byte_stride), AC_BLOCK | AC_EXPRESSION | AC_CONSTANT + | AC_REFERENCE }, { ENTRY(entry_pc), AC_ADDRESS }, { ENTRY(use_UTF8), AC_FLAG }, { ENTRY(extension), AC_REFERENCE },