From 6fdb723799e28de9a7df87b68a41c668fc18ce2a Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Mon, 5 Dec 2022 13:52:55 +0100 Subject: [PATCH] gas: add Dwarf line number test for .macro expansions Before fiddling with the code let's put in place a test covering what PR/gas 16908 aimed at. --- gas/testsuite/gas/elf/dwarf-5-macro.d | 27 ++++++++++++++++++++++++++ gas/testsuite/gas/elf/dwarf-5-macro.s | 28 +++++++++++++++++++++++++++ gas/testsuite/gas/elf/elf.exp | 1 + 3 files changed, 56 insertions(+) create mode 100644 gas/testsuite/gas/elf/dwarf-5-macro.d create mode 100644 gas/testsuite/gas/elf/dwarf-5-macro.s diff --git a/gas/testsuite/gas/elf/dwarf-5-macro.d b/gas/testsuite/gas/elf/dwarf-5-macro.d new file mode 100644 index 00000000000..794e17a575e --- /dev/null +++ b/gas/testsuite/gas/elf/dwarf-5-macro.d @@ -0,0 +1,27 @@ +#as: --gdwarf-5 +#name: line number entries for .macro expansions +#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: .* +.*Advance Line by 10017 to 10018 +.*(Copy|Special opcode .* Address by 0 .* and Line by 0 to 10018) +.*Special opcode .* and Line by 1 to 10019 +.*Special opcode .* and Line by 1 to 10020 +.*Set File Name to entry 2 .* +.*Advance Line by -10012 to 8 +.*Special opcode .* and Line by 0 to 8 +.*Set File Name to entry 1 .* +.*Advance Line by 10018 to 10026 +.*(Advance PC by .*|Special opcode .* and Line by 0 to 10026) +#... +.*Special opcode .* and Line by 1 to 10027 +.*Special opcode .* and Line by 1 to 10028 +.*Advance PC by .* +.*Extended opcode 1: End of Sequence diff --git a/gas/testsuite/gas/elf/dwarf-5-macro.s b/gas/testsuite/gas/elf/dwarf-5-macro.s new file mode 100644 index 00000000000..23be186f9ca --- /dev/null +++ b/gas/testsuite/gas/elf/dwarf-5-macro.s @@ -0,0 +1,28 @@ + .macro m1 args:vararg + .nop + .endm + + .macro m2 args:vararg + .file "Line.s" + .line 7 + .nop + .endm + + .macro m3 args:vararg +# 10013 "line.S" + .nop + .endm + + .text +macro: + m1 1 + m1 2 + m1 3 + + m2 1 + m2 2 + m2 3 + + m3 1 + m3 2 + m3 3 diff --git a/gas/testsuite/gas/elf/elf.exp b/gas/testsuite/gas/elf/elf.exp index 07f08a00a28..145814b62be 100644 --- a/gas/testsuite/gas/elf/elf.exp +++ b/gas/testsuite/gas/elf/elf.exp @@ -308,6 +308,7 @@ if { [is_elf_format] } then { run_dump_test "dwarf-5-cu" $dump_opts 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-3-func" $dump_opts run_dump_test "dwarf-5-func" $dump_opts run_dump_test "dwarf-5-func-global" $dump_opts -- 2.30.2