Thanks for committing the last patch however there's another edge case not
covered by the previous patch:

  struct VirualDestrClass
  {
    VirualDestrClass(int arg);
    virtual ~VirualDestrClass();
  };

  struct ConstrWithCleanupsClass
  {
    ConstrWithCleanupsClass(const VirualDestrClass& cplx =
VirualDestrClass(42));
  };

  ConstrWithCleanupsClass cwcNoArg;

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:

  ConstrWithCleanupsClass cwcNoArg();

Patch attached with fix and new test-cases for review and commit if it
LGTY. All tests passed locally.

- Will.

Attachment: default_arg_implicitexpr_fix.patch
Description: Binary data

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to