This is the mail archive of the gcc@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]
Other format: [Raw text]

Re: bootstrap failure current CVS in Ada


I'll look, but what i'm trying to say is the following.

Given a block tree for a function named "foo":

block 1 - vars, but no used vars
subblocks: block 2, block 3

block 2 - vars, but no used vars
subblocks: block 4

block 4 - two used vars

block 3 - no vars
abstract origin: an used inlined function

The debug writers expect block 1, 2, 3, and 4 to all have the used flag set, or else they won't output all the debug info you expect.
The reasons are:
block 4 because it has used vars
block 3 because it's abstract origin is a used inlined function (otherwise, we'll miss outputting the inlined function debug info in some cases)
block 2 because block 4 is used block 1 because block 2 and block 3 are used.


This is a bit counterintuitive, and i'm only stating it as what they expect. Not what they *should* expect, etc.
I can easily get rid of the requirements if we decide they make no sense, at the cost of some more walks in the debug writers.
It's easy to prove this to be the case.


After thinking about this more, i'm just going to make the debug writer do what everyone expects, which is to just ignore unused blocks, but not their subblocks, their origins, etc.

--Dan


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