cooked_indexer::index_dies incorrect computes the end of the current
CU in the .debug_info. This isn't readily testable without writing
intentionally corrupt DWARF, but it's apparent through observation: it
is currently based on 'info_ptr', which does not always point to the
start of the CU. This patch fixes the expression. Tested on x86-64
Fedora 34.
const cooked_index_entry *parent_entry,
bool fully)
{
- const gdb_byte *end_ptr = info_ptr + reader->cu->header.get_length ();
+ const gdb_byte *end_ptr = (reader->buffer
+ + to_underlying (reader->cu->header.sect_off)
+ + reader->cu->header.get_length ());
while (info_ptr < end_ptr)
{