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.
This commit is contained in:
Jan Beulich 2022-12-05 13:52:55 +01:00
parent c62e507e84
commit 6fdb723799
3 changed files with 56 additions and 0 deletions

View File

@ -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

View File

@ -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

View File

@ -308,6 +308,7 @@ if { [is_elf_format] } then {
run_dump_test "dwarf-5-cu" $dump_opts run_dump_test "dwarf-5-cu" $dump_opts
run_dump_test "dwarf-5-nop-for-line-table" $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-irp" $dump_opts
run_dump_test "dwarf-5-macro" $dump_opts
run_dump_test "dwarf-3-func" $dump_opts run_dump_test "dwarf-3-func" $dump_opts
run_dump_test "dwarf-5-func" $dump_opts run_dump_test "dwarf-5-func" $dump_opts
run_dump_test "dwarf-5-func-global" $dump_opts run_dump_test "dwarf-5-func-global" $dump_opts