[PATCH] Fix gdb.dwarf2/dw2-double-set-die-type.exp with Clang
Gary Benson
gbenson@redhat.com
Mon Sep 7 14:29:50 GMT 2020
Hi all,
gdb.dwarf2/dw2-double-set-die-type.exp failed to build with Clang,
because of the following issues:
- One .uleb128 directive was specified with an uppercase U,
causing Clang to fail with the message:
error: unknown directive
This commit converts that directive to all-lowercase.
- The label ".Labbrev1_begin" was referenced but not defined,
causing Clang to fail with the message:
<unknown>:0: error: Undefined temporary symbol
This commit adds the label in the appropriate place.
- The label ".Ldebug_line0" was referenced but not defined,
causing Clang to fail with the message:
<unknown>:0: error: Undefined temporary symbol
This commit removes the reference.
Checked on Fedora 32 x86_64, using GCC and Clang.
First, is this ok to commit?
Second, I want to report these issues to the relevang upstream,
but I'm struggling to find documentation. Does anybody know,
or have an opinion about:
1) Is it Clang's error that it doesn't accept .Uleb128 as a
valid directive, or is it gas's error that it does?
2) Is it Clang's error that it bombs on undefined labels, or
is it gas's error that it doesn't?
Thanks,
Gary
--
gdb/testsuite/ChangeLog:
* gdb.dwarf2/dw2-double-set-die-type.S (.Ldie_3e0):
Convert directive to lowercase.
(.Labbrev1_begin): Add missing label.
(abbrev code 0x1): Remove DW_AT_stmt_list.
(.Ldie_b): Likewise.
---
gdb/testsuite/ChangeLog | 8 ++++++++
gdb/testsuite/gdb.dwarf2/dw2-double-set-die-type.S | 6 ++----
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-double-set-die-type.S b/gdb/testsuite/gdb.dwarf2/dw2-double-set-die-type.S
index 3a31e03..d09a77b 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-double-set-die-type.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-double-set-die-type.S
@@ -50,7 +50,6 @@
.ascii "GNU C++ 4.4.3 20100127 (Red Hat 4.4.3-4)\0" /* DW_AT_producer */
.byte 0x4 /* DW_AT_language */
.ascii "duplicate-type.cc\0" /* DW_AT_name */
- .4byte .Ldebug_line0 /* DW_AT_stmt_list */
.Ldie_38:
.uleb128 0x3 /* (DIE (0x38) DW_TAG_typedef) */
@@ -247,7 +246,7 @@
.4byte OFFSET (3d5) /* DW_AT_type */
.Ldie_3e0:
- .Uleb128 0x20 /* (DIE (0x3e0) DW_TAG_class_type) */
+ .uleb128 0x20 /* (DIE (0x3e0) DW_TAG_class_type) */
.4byte OFFSET (70) /* DW_AT_specification */
.byte 0x1 /* DW_AT_byte_size */
.4byte OFFSET (44e) /* DW_AT_sibling */
@@ -351,6 +350,7 @@
/* Abbrev table */
.section .debug_abbrev
+.Labbrev1_begin:
.uleb128 0x1 /* (abbrev code) */
.uleb128 0x11 /* (TAG: DW_TAG_compile_unit) */
.byte 0x1 /* DW_children_yes */
@@ -360,8 +360,6 @@
.uleb128 0xb /* (DW_FORM_data1) */
.uleb128 0x3 /* (DW_AT_name) */
.uleb128 0x8 /* (DW_FORM_sting) */
- .uleb128 0x10 /* (DW_AT_stmt_list) */
- .uleb128 0x6 /* (DW_FORM_data4) */
.byte 0x0
.byte 0x0
--
1.8.3.1
More information about the Gdb-patches
mailing list