From b998313d9d1ec511eff5076029e62608c8c5ca0e Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Fri, 16 Dec 2016 15:14:23 +0100 Subject: [PATCH] Make move detection in loplugin:passstuffbyref work with MSVCRT ...where an ImplicitCastExpr happens to appear between CXXConstructExpr and CallExpr Change-Id: I62226cc89d87bd3d9c03743b650f10c32c18f9be --- compilerplugins/clang/passstuffbyref.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compilerplugins/clang/passstuffbyref.cxx b/compilerplugins/clang/passstuffbyref.cxx index 8695ae62d622..fca6b7375a07 100644 --- a/compilerplugins/clang/passstuffbyref.cxx +++ b/compilerplugins/clang/passstuffbyref.cxx @@ -204,7 +204,7 @@ void PassStuffByRef::checkParams(const FunctionDecl * functionDecl) { auto cxxConstructExpr = dyn_cast(cxxCtorInitializer->getInit()); if (cxxConstructExpr && cxxConstructExpr->getNumArgs() == 1) { - if (auto callExpr = dyn_cast(cxxConstructExpr->getArg(0))) { + if (auto callExpr = dyn_cast(cxxConstructExpr->getArg(0)->IgnoreParenImpCasts())) { if (loplugin::DeclCheck(callExpr->getCalleeDecl()).Function("move").StdNamespace()) { bFoundMove = true; break;