aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/ChangeLog9
-rw-r--r--include/dwarf2.def12
-rw-r--r--include/dwarf2.h25
-rw-r--r--libiberty/ChangeLog4
-rw-r--r--libiberty/dwarfnames.c11
5 files changed, 49 insertions, 12 deletions
diff --git a/include/ChangeLog b/include/ChangeLog
index 9400f16..8b25ce7 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,12 @@
+2017-07-02 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * dwarf2.def (DW_IDX_compile_unit, DW_IDX_type_unit, DW_IDX_die_offset)
+ (DW_IDX_parent, DW_IDX_type_hash, DW_IDX_lo_user, DW_IDX_hi_user)
+ (DW_IDX_GNU_internal, DW_IDX_GNU_external): New.
+ * dwarf2.h (DW_IDX, DW_IDX_DUP, DW_FIRST_IDX, DW_END_IDX): New.
+ (enum dwarf_name_index_attribute): Remove.
+ (get_DW_IDX_name): New declaration.
+
2017-06-30 Georg-Johann Lay <avr@gjlay.de>
PR gas/21683
diff --git a/include/dwarf2.def b/include/dwarf2.def
index ea6194e..a91e943 100644
--- a/include/dwarf2.def
+++ b/include/dwarf2.def
@@ -782,3 +782,15 @@ DW_CFA (DW_CFA_GNU_args_size, 0x2e)
DW_CFA (DW_CFA_GNU_negative_offset_extended, 0x2f)
DW_END_CFA
+
+/* Index attributes in the Abbreviations Table. */
+DW_FIRST_IDX (DW_IDX_compile_unit, 1)
+DW_IDX (DW_IDX_type_unit, 2)
+DW_IDX (DW_IDX_die_offset, 3)
+DW_IDX (DW_IDX_parent, 4)
+DW_IDX (DW_IDX_type_hash, 5)
+DW_IDX_DUP (DW_IDX_lo_user, 0x2000)
+DW_IDX (DW_IDX_hi_user, 0x3fff)
+DW_IDX (DW_IDX_GNU_internal, 0x2000)
+DW_IDX (DW_IDX_GNU_external, 0x2001)
+DW_END_IDX
diff --git a/include/dwarf2.h b/include/dwarf2.h
index 9c78880..14b6f22 100644
--- a/include/dwarf2.h
+++ b/include/dwarf2.h
@@ -52,6 +52,8 @@
#define DW_ATE(name, value) , name = value
#define DW_ATE_DUP(name, value) , name = value
#define DW_CFA(name, value) , name = value
+#define DW_IDX(name, value) , name = value
+#define DW_IDX_DUP(name, value) , name = value
#define DW_FIRST_TAG(name, value) enum dwarf_tag { \
name = value
@@ -71,6 +73,9 @@
#define DW_FIRST_CFA(name, value) enum dwarf_call_frame_info { \
name = value
#define DW_END_CFA };
+#define DW_FIRST_IDX(name, value) enum dwarf_name_index_attribute { \
+ name = value
+#define DW_END_IDX };
#include "dwarf2.def"
@@ -86,6 +91,8 @@
#undef DW_END_ATE
#undef DW_FIRST_CFA
#undef DW_END_CFA
+#undef DW_FIRST_IDX
+#undef DW_END_IDX
#undef DW_TAG
#undef DW_TAG_DUP
@@ -97,6 +104,8 @@
#undef DW_ATE
#undef DW_ATE_DUP
#undef DW_CFA
+#undef DW_IDX
+#undef DW_IDX_DUP
/* Flag that tells whether entry has a child or not. */
#define DW_children_no 0
@@ -420,18 +429,6 @@ enum dwarf_macro_record_type
DW_MACRO_GNU_hi_user = 0xff
};
-/* Index attributes in the Abbreviations Table. */
-enum dwarf_name_index_attribute
- {
- DW_IDX_compile_unit = 1,
- DW_IDX_type_unit = 2,
- DW_IDX_die_offset = 3,
- DW_IDX_parent = 4,
- DW_IDX_type_hash = 5,
- DW_IDX_lo_user = 0x2000,
- DW_IDX_hi_user = 0x3fff
- };
-
/* Range list entry kinds in .debug_rnglists* section. */
enum dwarf_range_list_entry
{
@@ -524,6 +521,10 @@ extern const char *get_DW_ATE_name (unsigned int enc);
recognized. */
extern const char *get_DW_CFA_name (unsigned int opc);
+/* Return the name of a DW_IDX_ constant, or NULL if the value is not
+ recognized. */
+extern const char *get_DW_IDX_name (unsigned int idx);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index b3087fa..925b152 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,3 +1,7 @@
+2017-07-02 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * dwarfnames.c (DW_FIRST_IDX, DW_END_IDX, DW_IDX, DW_IDX_DUP): New.
+
2017-05-31 DJ Delorie <dj@redhat.com>
* configure.ac (strnlen): Add to AC_CHECK_DECLS.
diff --git a/libiberty/dwarfnames.c b/libiberty/dwarfnames.c
index 62563b7..e58d03c 100644
--- a/libiberty/dwarfnames.c
+++ b/libiberty/dwarfnames.c
@@ -59,6 +59,11 @@ Boston, MA 02110-1301, USA. */
switch (opc) { \
DW_CFA (name, value)
#define DW_END_CFA } return 0; }
+#define DW_FIRST_IDX(name, value) \
+ const char *get_DW_IDX_name (unsigned int idx) { \
+ switch (idx) { \
+ DW_IDX (name, value)
+#define DW_END_IDX } return 0; }
#define DW_TAG(name, value) case name: return # name ;
#define DW_TAG_DUP(name, value)
@@ -70,6 +75,8 @@ Boston, MA 02110-1301, USA. */
#define DW_ATE(name, value) case name: return # name ;
#define DW_ATE_DUP(name, value)
#define DW_CFA(name, value) case name: return # name ;
+#define DW_IDX(name, value) case name: return # name ;
+#define DW_IDX_DUP(name, value)
#include "dwarf2.def"
@@ -85,6 +92,8 @@ Boston, MA 02110-1301, USA. */
#undef DW_END_ATE
#undef DW_FIRST_CFA
#undef DW_END_CFA
+#undef DW_FIRST_IDX
+#undef DW_END_IDX
#undef DW_TAG
#undef DW_TAG_DUP
@@ -96,3 +105,5 @@ Boston, MA 02110-1301, USA. */
#undef DW_ATE
#undef DW_ATE_DUP
#undef DW_CFA
+#undef DW_IDX
+#undef DW_IDX_DUP