aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/testsuite/ChangeLog5
-rw-r--r--gdb/testsuite/lib/dwarf.exp12
2 files changed, 16 insertions, 1 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index ab03f07..8206b3e 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2020-12-14 Mark Wielaard <mark@klomp.org>
+ * lib/dwarf.exp (Dwarf::_handle_attribute): Handle SPECIAL_expr
+ specially, set attr_form_comment to the actual FORM string used.
+
+2020-12-14 Mark Wielaard <mark@klomp.org>
+
* lib/dwarf.exp (Dwarf::_read_constants): Don't set
_constants(SPECIAL_expr) here, but set it...
(Dwarf::cu): ...here based on _cu_version.
diff --git a/gdb/testsuite/lib/dwarf.exp b/gdb/testsuite/lib/dwarf.exp
index 43ae296..5afb3e3 100644
--- a/gdb/testsuite/lib/dwarf.exp
+++ b/gdb/testsuite/lib/dwarf.exp
@@ -622,12 +622,22 @@ namespace eval Dwarf {
proc _handle_attribute { attr_name attr_value attr_form } {
variable _abbrev_section
variable _constants
+ variable _cu_version
_handle_DW_FORM $attr_form $attr_value
_defer_output $_abbrev_section {
+ if { $attr_form eq "SPECIAL_expr" } {
+ if { $_cu_version < 4 } {
+ set attr_form_comment "DW_FORM_block"
+ } else {
+ set attr_form_comment "DW_FORM_exprloc"
+ }
+ } else {
+ set attr_form_comment $attr_form
+ }
_op .uleb128 $_constants($attr_name) $attr_name
- _op .uleb128 $_constants($attr_form) $attr_form
+ _op .uleb128 $_constants($attr_form) $attr_form_comment
}
}