Re: [PATCH 4/7] jit: make gdb_symtab::blocks a vector

Pedro Alves
2019-12-13T22:14:33Z

On 12/13/19 6:03 AM, Simon Marchi wrote:
> I don't think it's true that "next" points to the next node at the same
> depth. It might happen to be true for some nodes, but it can't be true
> in general, as this is a simple linked list containing all the created
> blocks.

Is this really true? I mean, the comment you're removing talks about
a tree. I see that jit_block_open_impl starts by doing:

block->next = symtab->blocks;

but then the else branch writes to blocl->next again:

/* Guaranteed to terminate, since compare_block (NULL, _)
returns 1. */
if (compare_block (i->next, block))
{
block->next = i->next;

I don't pretend to understand this code, but it does sound like at
least the intention was to have a tree of blocks, which is not
a surprising data structure for blocks.

Thanks,
Pedro Alves