> Am 09.12.2023 um 21:13 schrieb Jason Merrill <ja...@redhat.com>:
> 
> On 11/2/23 21:18, Nathaniel Shead wrote:
>> Bootstrapped and regtested on x86-64_pc_linux_gnu.
>> I'm not entirely sure if the change I made to have destructors clobber with
>> CLOBBER_EOL instead of CLOBBER_UNDEF is appropriate, but nothing seemed to 
>> have
>> broken by doing this and I wasn't able to find anything else that really
>> depended on this distinction other than a warning pass. Otherwise I could
>> experiment with a new clobber kind for destructor calls.
> 
> It seems wrong to me: CLOBBER_EOL is documented to mean that the storage is 
> expiring at that point as well, which a (pseudo-)destructor does not imply; 
> it's perfectly valid to destroy an object and then create another in the same 
> storage.
> 
> We probably do want another clobber kind for end of object lifetime. And/or 
> one for beginning of object lifetime.

There’s not much semantically different between UNDEF and end of object but not 
storage lifetime?  At least for what middle-end optimizations do.

EOL is used by stack slot sharing and that operates on the underlying storage, 
not individual objects live in it.

Richard 

> Jason
> 

Reply via email to