<div dir="ltr">Thanks for committing the last patch however there's another edge case not covered by the previous patch:<div><br></div><div><div>  struct VirualDestrClass</div><div>  {</div><div>    VirualDestrClass(int arg);</div>
<div>    virtual ~VirualDestrClass();</div><div>  };</div><div><br></div><div>  struct ConstrWithCleanupsClass</div><div>  {</div><div>    ConstrWithCleanupsClass(const VirualDestrClass& cplx = VirualDestrClass(42));</div>
<div>  };</div></div><div><br></div><div>  ConstrWithCleanupsClass cwcNoArg;<br></div><div><br></div><div style>Here cwcNoArg has it's CXXConstructExpr wrapped in a ExprWithCleanups (to handle the cleanup of the temporary). As the old code didn't look through the implicit expressions the printed result was this:</div>
<div style><br></div><div style>  ConstrWithCleanupsClass cwcNoArg();</div>















<div><br></div><div style>Patch attached with fix and new test-cases for review and commit if it LGTY. All tests passed locally.</div><div style><br></div><div style>- Will.</div></div>