> which shows how the global objects initialization keeps things live. > Early optimization turns it into > > (static initializers for t.C) () > { > <bb 2>: > NotUsedObject._vptr.CObject = &MEM[(void *)&_ZTV7CObject + 16B]; > return; > > } > > but we don't have any pass removing stores to globals never read. IPA > reference computes this > in some way but doesn't get to export this in a reasonable way - its > transform stage could DSE > those though.
We have write only variable detection but > NotUsedObject/4 (CObject NotUsedObject) @0x7f70d41fe580 > Type: variable definition analyzed > Visibility: public > References: > Referring: _Z41__static_initialization_and_destruction_0ii/9 (addr) > Availability: not-ready > Varpool flags: it stops on fact believing that address of NotUsedObject is taken. Why it is not considered to be load? Honza