This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH]: Generate namespace info for dwarf2
- From: Daniel Berlin <dberlin at dberlin dot org>
- To: Daniel Berlin <dberlin at dberlin dot org>
- Cc: Jan Hubicka <Jh at suse dot cz>,Benjamin Kosnik <bkoz at redhat dot com>,GCC Patches <gcc-patches at gcc dot gnu dot org>,Jason Merrill <jason at redhat dot com>
- Date: Sun, 30 Nov 2003 13:08:59 -0500
- Subject: Re: [PATCH]: Generate namespace info for dwarf2
- References: <Pine.LNX.4.56.0311301135400.31387@dberlin.org>
On Nov 30, 2003, at 11:36 AM, Daniel Berlin wrote:
Here's an updated namespace patch that incorporates Jason's comments
from
last year. :P
It's bootstrapping now. Okay to commit assuming bootstrap/regtest
succeeds?
It doesn't bootstrap, it fails building eh_catch.ii
Unfortunately, it's a bug i don't understand how to fix.
here's what happens:
1. We inline some functions into cxa_begin_catch
2. We call (*debug_hooks->outlining_inline_function) (decl); on the
inlined function before we've outputted the debug info for the
non-inlined version of the function.
3. We try to add an abstract origin to one of the inlined functions
parameters, which of course, fails miserably, because it can't find the
die for the non-inlined version (since it hasn't been output yet).
If you turn off inlining (-O1, -O2 with the inline keywords removed),
it works fine, obviously.
If someone can figure out why we don't generate info for the
non-inlined version first, we can fix this bug.
Jan, I've copied you in case this is caused by cgraph stuff.
Test case attached, compile with -O2 and the namespace patch to see the
problem.
This is probably a latent bug, because we never used to output info
about the inlined version before this patch.