diff options
-rw-r--r-- | gas/input-scrub.c | 9 | ||||
-rw-r--r-- | gas/testsuite/gas/elf/dwarf-5-irp.d | 80 | ||||
-rw-r--r-- | gas/testsuite/gas/elf/dwarf-5-irp.s | 31 | ||||
-rw-r--r-- | gas/testsuite/gas/elf/elf.exp | 1 |
4 files changed, 116 insertions, 5 deletions
diff --git a/gas/input-scrub.c b/gas/input-scrub.c index 26af4fe..d9f1694 100644 --- a/gas/input-scrub.c +++ b/gas/input-scrub.c @@ -429,11 +429,10 @@ void bump_line_counters (void) { if (sb_index == (size_t) -1) - { - ++physical_input_line; - if (logical_input_line != -1u) - ++logical_input_line; - } + ++physical_input_line; + + if (logical_input_line != -1u) + ++logical_input_line; } /* Tells us what the new logical line number and file are. diff --git a/gas/testsuite/gas/elf/dwarf-5-irp.d b/gas/testsuite/gas/elf/dwarf-5-irp.d new file mode 100644 index 0000000..e7bdda7 --- /dev/null +++ b/gas/testsuite/gas/elf/dwarf-5-irp.d @@ -0,0 +1,80 @@ +#as: --gdwarf-5 +#name: line number entries for section changes inside .irp +#readelf: -W -wlrR +# The cr16 crx ft32 mn10* msp430 nds32* and rl78 targets do not evaluate the subtraction of symbols at assembly time. +# The bfin target does not allow .subsection with an equated symbol as operand. +# 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: bfin-* cr16-* crx-* d30v-* ft32-* mn10*-* msp430-* nds32*-* riscv*-* rl78-* + +Raw dump of debug contents .* +#... + Line Number Statements: +.*Extended opcode 2: .* +.*Special opcode .* and Line by 2 to 3 +.*Set File Name to entry 2 .* +.*Advance Line by 15 to 18 +.*Special opcode .* and Line by 0 to 18 +.*Special opcode .* and Line by 1 to 19 +.*Special opcode .* and Line by -1 to 18 +.*Special opcode .* and Line by 1 to 19 +.*Special opcode .* and Line by -1 to 18 +.*Special opcode .* and Line by 1 to 19 +.*Set File Name to entry 3 .* +.*Advance Line by 9 to 28 +.*Special opcode .* and Line by 0 to 28 +.*Special opcode .* and Line by 1 to 29 +.*Special opcode .* and Line by -1 to 28 +.*Special opcode .* and Line by 1 to 29 +.*Special opcode .* and Line by -1 to 28 +.*Special opcode .* and Line by 1 to 29 +.*Advance PC by .* +.*Extended opcode 1: End of Sequence + +.*Set File Name to entry 4 .* +.*Extended opcode 2: .* +.*Special opcode .* and Line by 8 to 9 +.*Special opcode .* and Line by 1 to 10 +.*Advance PC by .* +.*Extended opcode 1: End of Sequence + +.*Set File Name to entry 4 .* +.*Extended opcode 2: .* +.*Special opcode .* and Line by 8 to 9 +.*Special opcode .* and Line by 1 to 10 +.*Advance PC by .* +.*Extended opcode 1: End of Sequence + +.*Set File Name to entry 4 .* +.*Extended opcode 2: .* +.*Special opcode .* and Line by 8 to 9 +.*Special opcode .* and Line by 1 to 10 +.*Advance PC by .* +.*Extended opcode 1: End of Sequence + + +Contents of the \.debug_aranges section: + + Length: .* + Version: +2 + Offset into \.debug_info: .* + Pointer Size: +[248] + Segment Size: +0 + + Address +Length + 0+ [0-9a-f]+ ? + 0+ [0-9a-f]+ ? + 0+ [0-9a-f]+ ? + 0+ [0-9a-f]+ ? + 0+ 0+ ? + +Contents of the \.debug_rnglists section: + + Offset +Begin +End + [0-9a-f]+ 0+ [0-9a-f]+ ? + [0-9a-f]+ 0+ [0-9a-f]+ ? + [0-9a-f]+ 0+ [0-9a-f]+ ? + [0-9a-f]+ 0+ [0-9a-f]+ ? + [0-9a-f]+ <End of list> + +#pass diff --git a/gas/testsuite/gas/elf/dwarf-5-irp.s b/gas/testsuite/gas/elf/dwarf-5-irp.s new file mode 100644 index 0000000..e9e8746 --- /dev/null +++ b/gas/testsuite/gas/elf/dwarf-5-irp.s @@ -0,0 +1,31 @@ + .text +_start: + .nop + + .irp n, ab, ij, xy + .file "irp.s" + .line 7 + .section .text.\n, "ax" + .nop + .nop + .endr + + .text + + .irpc n, 123 + .file "irpc.s" + .line 16 + .subsection \n + .nop + .nop + .endr + + n = 9 + .rept 3 + .file "rept.s" + .line 26 + .subsection n + .nop + .nop + n = n - 1 + .endr diff --git a/gas/testsuite/gas/elf/elf.exp b/gas/testsuite/gas/elf/elf.exp index aacecb7..081ab4e 100644 --- a/gas/testsuite/gas/elf/elf.exp +++ b/gas/testsuite/gas/elf/elf.exp @@ -306,6 +306,7 @@ if { [is_elf_format] } then { run_dump_test "dwarf-4-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-irp" $dump_opts run_dump_test "pr25917" run_dump_test "bss" run_dump_test "bad-bss" |