[rfa] generate symbols associated to namespaces

David Carlton carlton@kealia.com
Tue Aug 5 18:06:00 GMT 2003


On Tue, 5 Aug 2003 13:54:29 -0400, Daniel Jacobowitz <drow@mvista.com> said:
> On Fri, Jun 27, 2003 at 02:58:50PM -0700, David Carlton wrote:

>> +  /* Allocate empty GLOBAL_BLOCK and STATIC_BLOCK. */
>> +
>> +  bl = allocate_block (&objfile->symbol_obstack);
>> +  BLOCK_DICT (bl) = dict_create_linear (&objfile->symbol_obstack,
>> +					NULL);
>> +  BLOCKVECTOR_BLOCK (bv, GLOBAL_BLOCK) = bl;
>> +  bl = allocate_block (&objfile->symbol_obstack);
>> +  BLOCK_DICT (bl) = dict_create_linear (&objfile->symbol_obstack,
>> +					NULL);
>> +  BLOCKVECTOR_BLOCK (bv, STATIC_BLOCK) = bl;
>> +
>> +  /* Allocate the possible namespace block; we put it where the first
>> +     local block will live, though I don't think there's any need to
>> +     pretend that it's actually a local block (e.g. by setting
>> +     BLOCK_SUPERBLOCK appropriately).  */
>> +
>> +  bl = allocate_block (&objfile->symbol_obstack);
>> +  BLOCK_DICT (bl) = dict_create_hashed_expandable ();
>> +  BLOCKVECTOR_BLOCK (bv, FIRST_LOCAL_BLOCK) = bl;

> Is there any particular reason not to use the global block?  If so
> might want to comment what it is.

Yes: we never want these symbols to be found by a normal search of all
symtabs' global blocks, because we don't trust these symbols.  We only
want them found as a last resort, once we've looked every place that
symbols associated to classes should live.  So that's why I stash them
in a local block.  I'll add a comment to that effect.

David Carlton
carlton@kealia.com



More information about the Gdb-patches mailing list