>>> Is it correct that block_num has 1-1 mapping with block_table. And >>> block_table has 1-1 mapping with logical_table? >> >> The first part, yes -- there's one entry in block_table for each >> block_num in the function tree. But two or more blocks may map to a >> single logical, and some blocks may not correspond to a logical at all >> -- if dwarf2out_source_line() is never called for a block, I'll never >> create a logical for it. > > I don't understand why multiple blocks may map to a single > logical_entry. Can you give an example?
Sorry, you may be right that two different block cannot map to a single logical entry. But I don't think that's relevant. I create a logical for a specific combination of file/line/discriminator/subprog/context, which I obtain from the block entry. It is definitely possible for many logicals to map to a single block, though, so there is not a 1-1 mapping. -cary