On Wed, Jul 15, 2015 at 04:25:44PM +0200, Michael Matz wrote: > On Wed, 15 Jul 2015, Jakub Jelinek wrote: > > > On Wed, Jul 15, 2015 at 04:14:07PM +0200, Michael Matz wrote: > > > That's Toms other approach with supporting multi-step dependencies. As I > > > have tried to argue in the other thread, I think this idea is > > > fundamentally broken and just hides real bugs, and I don't see why this > > > would be different for this particular hash-map. If the value of this > > > hash refers to a decl that isn't mentioned anywhere else except from this > > > hash entry, then it has no meaning anymore, and hence shouldn't itself be > > > part of the hash anymore. > > > > You mean key or value? The value of course can mention various trees that > > aren't referenced from anywhere else, and it has meaning. > > No, I really meant value. If you think it has meaning, then tell me what > it is for DECL_VALUE_EXPR (X) to be 'Y', if Y is nowhere else mentioned, > neither in code, nor in local-decls, nor in globals, or anywhere else that > would be reachable by GC.
Pretty much anything, DECL_VALUE_EXPR (X) is some expression. It can be some_var[some_other_var], *some_var, ptr->foo, etc. just to list a few of the ones currently in use. DECL_DEBUG_EXPR can also be __imag__ somevar, __real__ somevar, something.field, etc. Jakub