rjmccall added a comment.

In D61165#1494001 <https://reviews.llvm.org/D61165#1494001>, @rsmith wrote:

> In D61165#1492830 <https://reviews.llvm.org/D61165#1492830>, @rjmccall wrote:
>
> > In D61165#1492781 <https://reviews.llvm.org/D61165#1492781>, @rsmith wrote:
> >
> > > For the purposes of this patch, I think that means we never need a 
> > > destructor for the type of a `[[no_destroy]]` variable.
> >
> >
> > Arrays and other subobjects of an aggregate initializaton, unless applying 
> > the standard "literally" implies the obviously perverse result that we 
> > don't destroy subobjects in such cases.
>
>
> Yes, but you need the destructors for those subobjects as a side-condition of 
> the initialization, irrespective of what kind of object that initialization 
> is initializing. I don't think that's got anything to do with 
> `[[no_destroy]]`. I think it remains the case that you never need a 
> destructor for the type of a `[[no_destroy]]` variable.


Okay, so the rule should be that `[[no_destroy]]` never requires the destructor 
for the exact type of the variable, but it might require the destructors of 
sub-object types of a `static` local that uses aggregate initialization when 
exceptions are enabled, which necessarily includes the element type of an array.

> So far the opinion of folks on the core reflector has unanimously been that 
> (1) is the right model. And I think that makes sense: it would be somewhat 
> strange for the initialization of a complete object to be considered complete 
> after temporaries are destroyed, but the initializations of its subobjects to 
> be considered complete before the temporaries are destroyed.

Okay.  I'm not sure that's the decision I would make, but I can accept it, and 
it certainly simplifies the model in some ways.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D61165/new/

https://reviews.llvm.org/D61165



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to