summaryrefslogtreecommitdiff
path: root/compilerplugins/clang/makeshared.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'compilerplugins/clang/makeshared.cxx')
-rw-r--r--compilerplugins/clang/makeshared.cxx3
1 files changed, 2 insertions, 1 deletions
diff --git a/compilerplugins/clang/makeshared.cxx b/compilerplugins/clang/makeshared.cxx
index b1f1c13ce640..398a3acc4654 100644
--- a/compilerplugins/clang/makeshared.cxx
+++ b/compilerplugins/clang/makeshared.cxx
@@ -68,7 +68,8 @@ bool MakeShared::VisitCXXConstructExpr(CXXConstructExpr const* constructExpr)
return true;
if (!loplugin::TypeCheck(constructExpr->getType()).ClassOrStruct("shared_ptr").StdNamespace())
return true;
- if (constructExpr->getNumArgs() != 1)
+ if (!(constructExpr->getNumArgs() == 1
+ || (constructExpr->getNumArgs() > 1 && isa<CXXDefaultArgExpr>(constructExpr->getArg(1)))))
return true;
auto cxxNewExpr = dyn_cast<CXXNewExpr>(constructExpr->getArg(0)->IgnoreParenImpCasts());
if (!cxxNewExpr)