[Libreoffice-commits] core.git: compilerplugins/clang

Stephan Bergmann sbergman at redhat.com
Thu Dec 22 08:23:46 UTC 2016


 compilerplugins/clang/store/badvectorinit.cxx |    9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

New commits:
commit 1dc43e24b34bfdd56928e674fbc53e8fda481e79
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Thu Dec 22 09:23:19 2016 +0100

    Generalize vector/deque ctor checks to work with MSVCRT
    
    Change-Id: I2d493a36b8c2e3abe69964c04b46f08d67ef8a48

diff --git a/compilerplugins/clang/store/badvectorinit.cxx b/compilerplugins/clang/store/badvectorinit.cxx
index 7b26ca3..a793c96 100644
--- a/compilerplugins/clang/store/badvectorinit.cxx
+++ b/compilerplugins/clang/store/badvectorinit.cxx
@@ -178,12 +178,13 @@ bool BadVectorInit::VisitCXXConstructExpr(const CXXConstructExpr* expr)
     if (aParentName.find("vector") == string::npos && aParentName.find("deque") == string::npos)
         return true;
 
-    // ignore the copy constructor
+    // ignore the copy/move constructors, and those taking an initializer_list
+    // etc.:
+    if (consDecl->isCopyConstructor() || consDecl->isMoveConstructor())
+        return true;
     const ParmVarDecl* pParam = consDecl->getParamDecl(0);
     std::string aParam1 = pParam->getOriginalType().getAsString();
-    if (aParam1.find("vector") != string::npos
-        || aParam1.find("deque") != string::npos
-        || aParam1.find("initializer_list") != string::npos
+    if (aParam1.find("initializer_list") != string::npos
         || aParam1.find("iterator") != string::npos)
         return true;
 


More information about the Libreoffice-commits mailing list