gas: add Dwarf line number test for .macro expansions
authorJan Beulich <jbeulich@suse.com>
Mon, 5 Dec 2022 12:52:55 +0000 (13:52 +0100)
committerJan Beulich <jbeulich@suse.com>
Mon, 5 Dec 2022 12:52:55 +0000 (13:52 +0100)
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 [new file with mode: 0644]
gas/testsuite/gas/elf/dwarf-5-macro.s [new file with mode: 0644]
gas/testsuite/gas/elf/elf.exp

diff --git a/gas/testsuite/gas/elf/dwarf-5-macro.d b/gas/testsuite/gas/elf/dwarf-5-macro.d
new file mode 100644 (file)
index 0000000..794e17a
--- /dev/null
@@ -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 (file)
index 0000000..23be186
--- /dev/null
@@ -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
index 07f08a00a28476f858fccf4e3164a6133b8444fc..145814b62be2653a03711b05100b558e75e15d24 100644 (file)
@@ -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