Currently we clobber objects at the end of the destructor to express that the language guarantees nothing about the state of storage after an object is destroyed. The same is true at the other end: when a constructor begins the object has indeterminate value, so any stores to the underlying storage before that can be considered dead. Like the destructor clobber, this can be disabled with -fno-lifetime-dse. Tested x86_64-pc-linux-gnu, applying to trunk.