diff options
author | Jan Beulich <jbeulich@suse.com> | 2022-12-16 09:01:14 +0100 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2022-12-16 09:01:14 +0100 |
commit | 22a8433e00fd33efcb1fa4961eb826cd97f2cd8b (patch) | |
tree | 0ccd9c48c3a0b29a69264f07303924fae4500c03 /gas/testsuite | |
parent | 689933867ad45487751a6bb411e69cd91ef24990 (diff) | |
download | binutils-gdb-22a8433e00fd33efcb1fa4961eb826cd97f2cd8b.tar.gz |
gas: restore Dwarf info generation after macro diagnostic adjustments
While 6fdb723799e2 ("gas: re-work line number tracking for macros and
their expansions") was meant to leave generated Dwarf as is, it really
didn't (and the testcase intended to catch that wasn't covering the case
which broke). Its adjustment to buffer_and_nest() didn't go far enough,
leading to the "linefile" directive inserted at the top to also be
processed later in the PRĀ gas/16908 workaround (which clearly isn't
intended - it's being put there for processing during macro expansion
only). That unnoticed flaw in turn led me to work around it by a
(suspicious to me already at the time) conditional in as_where().
Diffstat (limited to 'gas/testsuite')
-rw-r--r-- | gas/testsuite/gas/elf/dwarf-5-macro-include.d | 17 | ||||
-rw-r--r-- | gas/testsuite/gas/elf/dwarf-5-macro-include.inc | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/elf/dwarf-5-macro-include.s | 5 | ||||
-rw-r--r-- | gas/testsuite/gas/elf/elf.exp | 1 |
4 files changed, 26 insertions, 0 deletions
diff --git a/gas/testsuite/gas/elf/dwarf-5-macro-include.d b/gas/testsuite/gas/elf/dwarf-5-macro-include.d new file mode 100644 index 00000000000..32ea6386992 --- /dev/null +++ b/gas/testsuite/gas/elf/dwarf-5-macro-include.d @@ -0,0 +1,17 @@ +#as: --gdwarf-5 -I${srcdir}/$subdir +#name: line number entries for expansions of .macro coming from .include +#readelf: -W -wl +# The am33 cr16 crx ft32 mn10* msp430 nds32* and rl78 targets do not evaluate the subtraction of symbols at assembly time. +# The d30v target emits sufficiently different debug info, apparently also covering padding it inserts. +# The riscv targets do not support the subtraction of symbols. +#xfail: am33*-* cr16-* crx-* d30v-* ft32-* mn10*-* msp430-* nds32*-* riscv*-* rl78-* + +Raw dump of debug contents .* +#... + Line Number Statements: +.*Extended opcode 2: .* +.*Special opcode .* advance Address by 0 .* and Line by 2 to 3 +.*Special opcode .* and Line by 1 to 4 +.*Special opcode .* and Line by 1 to 5 +.*Advance PC by .* +.*Extended opcode 1: End of Sequence diff --git a/gas/testsuite/gas/elf/dwarf-5-macro-include.inc b/gas/testsuite/gas/elf/dwarf-5-macro-include.inc new file mode 100644 index 00000000000..7322377fac4 --- /dev/null +++ b/gas/testsuite/gas/elf/dwarf-5-macro-include.inc @@ -0,0 +1,3 @@ + .macro m1 args:vararg + .nop + .endm diff --git a/gas/testsuite/gas/elf/dwarf-5-macro-include.s b/gas/testsuite/gas/elf/dwarf-5-macro-include.s new file mode 100644 index 00000000000..6b6832ac61f --- /dev/null +++ b/gas/testsuite/gas/elf/dwarf-5-macro-include.s @@ -0,0 +1,5 @@ + .include "dwarf-5-macro-include.inc" + + m1 1 + m1 2 + m1 3 diff --git a/gas/testsuite/gas/elf/elf.exp b/gas/testsuite/gas/elf/elf.exp index 145814b62be..105708d4e4d 100644 --- a/gas/testsuite/gas/elf/elf.exp +++ b/gas/testsuite/gas/elf/elf.exp @@ -309,6 +309,7 @@ if { [is_elf_format] } then { run_dump_test "dwarf-5-nop-for-line-table" $dump_opts run_dump_test "dwarf-5-irp" $dump_opts run_dump_test "dwarf-5-macro" $dump_opts + run_dump_test "dwarf-5-macro-include" $dump_opts run_dump_test "dwarf-3-func" $dump_opts run_dump_test "dwarf-5-func" $dump_opts run_dump_test "dwarf-5-func-global" $dump_opts |