This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH]: Generate namespace info for dwarf2

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

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.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]