Re: [rfa] generate symbols associated to namespaces

David Carlton
2003-08-05T18:06:29Z

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.