[PATCH]: Updated patch to output dwarf2 namespace debug info

Daniel Berlin dberlin@dberlin.org
Mon Dec 1 19:27:00 GMT 2003


On Dec 1, 2003, at 2:09 PM, David Carlton wrote:

> On Mon, 1 Dec 2003 11:58:26 -0600, Benjamin Kosnik <bkoz@redhat.com> 
> said:
>
>> Attached is a patch that applies without errors to today's sources. I
>> have verified that it bootstraps and adds no new regressions.
>
> Thanks to everybody who's gotten this applied so quickly - I really
> appreciate it.

It's not applied yet, it still requires approval.
> One question:
>
>> + /* Force out any required namespaces to be able to output DECL,
>> +    and return the new context_die for it, if it's changed.  */
>> + static dw_die_ref
>> + setup_namespace_context (tree decl, dw_die_ref context_die)
>> + {
>> +    /* Force out the namespace. */
>> +   if (!DECL_ABSTRACT (decl) && DECL_CONTEXT (decl) && TREE_CODE 
>> (DECL_CONTEXT (decl)) == NAMESPACE_DECL)
>
> The version of this patch that I've been working with doesn't have the
> "!DECL_ABSTRACT(decl)" part of this.  What's its purpose?  (I don't
> know much about GCC's internals.)

To avoid forcing out namespaces for an copy of a function that got 
inlined somewhere else.

Otherwise, we'd
1. Abort because we'd output abstract instances outside of their actual 
context
2. Generate wrong info in that we'd place inlined versions of functions 
in namespaces, in the namespaces, instead of where they were inlined 
into.



More information about the Gcc-patches mailing list