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

Noel Grandin noel at peralex.com
Wed May 18 14:40:19 UTC 2016


 compilerplugins/clang/unusedmethods.cxx |   10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

New commits:
commit d59125638bf4c58507d4311f614abc429c7b3b8d
Author: Noel Grandin <noel at peralex.com>
Date:   Wed May 18 16:37:36 2016 +0200

    update unusedmethods plugin to ignore externC and copy constructors
    
    Change-Id: Idf7a9403d313ba6a0e031c59601e20c880b6118b

diff --git a/compilerplugins/clang/unusedmethods.cxx b/compilerplugins/clang/unusedmethods.cxx
index fe5825f..aa645fb 100644
--- a/compilerplugins/clang/unusedmethods.cxx
+++ b/compilerplugins/clang/unusedmethods.cxx
@@ -212,7 +212,9 @@ void UnusedMethods::logCallToRootMethods(const FunctionDecl* functionDecl, std::
     {
         while (functionDecl->getTemplateInstantiationPattern())
             functionDecl = functionDecl->getTemplateInstantiationPattern();
-        funcSet.insert(niceName(functionDecl));
+        if (functionDecl->getLocation().isValid() && !ignoreLocation( functionDecl )
+             && !functionDecl->isExternC())
+            funcSet.insert(niceName(functionDecl));
     }
 }
 
@@ -348,8 +350,12 @@ bool UnusedMethods::VisitFunctionDecl( const FunctionDecl* functionDecl )
     if (functionDecl->isDeleted() || functionDecl->isDefaulted()) {
         return true;
     }
+    if (isa<CXXConstructorDecl>(functionDecl) && dyn_cast<CXXConstructorDecl>(functionDecl)->isCopyConstructor()) {
+        return true;
+    }
 
-    if( functionDecl->getLocation().isValid() && !ignoreLocation( functionDecl ))
+    if( functionDecl->getLocation().isValid() && !ignoreLocation( functionDecl )
+        && !functionDecl->isExternC())
     {
         MyFuncInfo funcInfo = niceName(functionDecl);
         definitionSet.insert(funcInfo);


More information about the Libreoffice-commits mailing list