compilerplugins/clang/unusedfields.cxx |   10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

New commits:
commit d39717a6d6e6b3f507423a5da6d338de2541e43a
Author: Noel Grandin <noel.gran...@collabora.co.uk>
Date:   Tue May 16 09:39:23 2017 +0200

    tighten up the check a little more
    
    Change-Id: Ic19364d2daa064a20da0ed9d9641f1646d8f6ce3

diff --git a/compilerplugins/clang/unusedfields.cxx 
b/compilerplugins/clang/unusedfields.cxx
index d3177e21ad24..60eca65e8fb0 100644
--- a/compilerplugins/clang/unusedfields.cxx
+++ b/compilerplugins/clang/unusedfields.cxx
@@ -188,6 +188,10 @@ static char easytolower(char in)
         return in-('Z'-'z');
     return in;
 }
+bool startswith(const std::string& rStr, const char* pSubStr)
+{
+    return rStr.compare(0, strlen(pSubStr), pSubStr) == 0;
+}
 
 bool UnusedFields::VisitMemberExpr( const MemberExpr* memberExpr )
 {
@@ -248,11 +252,11 @@ bool UnusedFields::VisitMemberExpr( const MemberExpr* 
memberExpr )
         {
             // check for calls to ReadXXX() type methods and the operator>>= 
methods on Any.
             const FunctionDecl * calleeFunctionDecl = 
callExpr->getDirectCallee();
-            if (calleeFunctionDecl)
+            if (calleeFunctionDecl && calleeFunctionDecl->getIdentifier())
             {
-                std::string name = 
calleeFunctionDecl->getQualifiedNameAsString();
+                std::string name = calleeFunctionDecl->getNameAsString();
                 std::transform(name.begin(), name.end(), name.begin(), 
easytolower);
-                if (name.find("read") != std::string::npos || name.find(">>=") 
!= std::string::npos)
+                if (startswith(name, "read") || name.find(">>=") != 
std::string::npos)
                     // this is a write-only call
                     ;
                 else
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to