This is the mail archive of the gcc-patches@gcc.gnu.org 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]

dwarf2 bug. Was Re: reorder bug in 3.0


>> > the die looks like:
>> Where is the die getting added from?
>> Break on new_die for the die it's aborting on.
>> It shouldn't be placed on the limbo die list unless it has no
>> parent. And if it has no parent, it should be a die with an abstract
>> origin (otherwise, where would we attach the die?)


The issue would appear to be that we never set the parent of
the nested function.  When the nested function is being
processed, the outer function hasn't had a die created yet.
When the outer function is being processed, the nested function is not 
referenced in either the BLOCK_VARS or BLOCK_SUBBLOCKS lists, so it
never gets its parent field set. And there doesnt appear to be any
other way of finding it that I can see.

Should the nested function be in one of these lists, but
hasn't been added? When processing decls_for_scope for the outer
function, I called add_child_die() by hand from the debugger
with the appropriate dies as parameters, and everything seems
to work fine. 

The nested function is refered to only by address as a parameter to a
function call. My guess is that it ought to be added into
one of these lists, (probably the BLOCK_VARS?), but is missed
for some reason.  

Andrew


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