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