vsapsai added a comment.

In D55543#1329288 <https://reviews.llvm.org/D55543#1329288>, @vsapsai wrote:

> In D55543#1328025 <https://reviews.llvm.org/D55543#1328025>, @rjmccall wrote:
>
> > Nice catch.  This also fixes problems where there might be cleanups entered 
> > by `EmitParmDecl`, e.g. in ObjC++ with a parameter of type `struct A { 
> > __strong id x; }`; could you please add a test for that and verify that the 
> > parameter is destroyed at an appropriate point in the inlined call?
>
>
> Aha, I see we have at least `EHStack.pushCleanup<ConsumeARCParameter>` in 
> `EmitParmDecl`. Will make sure to add a test that executes this code path.


The way I understand the comment, we cannot make a parameter of type `struct A` 
to have a cleanup specific to 
`CodeGenFunction::EmitInlinedInheritingCXXConstructorCall`. It calls 
`EmitParmDecl` but does it only for implicit parameters. And I am struggling to 
make `struct A` an implicit parameter.

Nevertheless, my change causes different exception-handling behaviour. Need to 
check further if it is ARC-related or inherited constructor-related.


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

https://reviews.llvm.org/D55543



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

Reply via email to