> One thing that I'm wondering about this patch is why hasn't this been > done before? We seem to purposely separate TREE_ADDRESSABLE from > ADDR_EXPR. Perhaps to prevent pessimistic assumptions? The current > aliasing code removes addressability when it can prove otherwise.
One concern I have in marking a DECL addressable that early on is that it may stay "stuck" even if the ADDR_EXPR is later eliminated. This can be common in inlined situations, I thought. We *do* have to make up our mind, of course, on a precise time when it's set and be very clear about whether we can reset it (and how) if we discover later that the address actually isn't being taken.