gdb/testsuite: add test for .debug_{rng,loc}lists section without offset array
authorSimon Marchi <simon.marchi@efficios.com>
Tue, 2 Feb 2021 15:40:53 +0000 (10:40 -0500)
committerSimon Marchi <simon.marchi@polymtl.ca>
Tue, 2 Feb 2021 15:42:12 +0000 (10:42 -0500)
commit9307efbe9eb58fb041d09b1e35cffd377d20e708
tree4d059caa8700fb10faf6b8703d5c99a544b871b5
parente57933dc9cda3292f0baadbf80ff07d398566abb
gdb/testsuite: add test for .debug_{rng,loc}lists section without offset array

It is possible for the tables in the .debug_{rng,loc}lists sections to
not have an array of offsets.  In that case, the offset_entry_count
field of the header is 0.  The forms DW_FORM_{rng,loc}listx (reference
by index) can't be used with that table.  Instead, the
DW_FORM_sec_offset form, which references a {rng,loc}list by direct
offset in the section, must be used.  From what I saw, this is what GCC
currently produces.

Add tests for this case.  I didn't see any bug related to this, I just
think that it would be nice to have coverage for this. A new
`-with-offset-array` option is added to the `table` procs, used when
generating {rng,loc}lists, to decide whether to generate the offset
array.

gdb/testsuite/ChangeLog:

* lib/dwarf.exp (rnglists): Add -no-offset-array option to
table proc.
* gdb.dwarf2/rnglists-sec-offset.exp: Add test for
.debug_rnglists table without offset array.
* gdb.dwarf2/loclists-sec-offset.exp: Add test for
.debug_loclists table without offset array.

Change-Id: I8e34a7bf68c9682215ffbbf66600da5b7db91ef7
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.dwarf2/loclists-sec-offset.c
gdb/testsuite/gdb.dwarf2/loclists-sec-offset.exp
gdb/testsuite/gdb.dwarf2/rnglists-sec-offset.exp
gdb/testsuite/lib/dwarf.exp