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

Stephan Bergmann sbergman at redhat.com
Mon Jul 11 16:10:20 UTC 2016


 compilerplugins/clang/vclwidgets.cxx |   18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

New commits:
commit 744c924754accf77514599f660af52480999c144
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Mon Jul 11 18:09:55 2016 +0200

    Adapt to Clang 3.4 again
    
    Change-Id: I33c1cee01593b06efca6e1aae283ce80d5cd77be

diff --git a/compilerplugins/clang/vclwidgets.cxx b/compilerplugins/clang/vclwidgets.cxx
index ba0c007..ce2bb55 100644
--- a/compilerplugins/clang/vclwidgets.cxx
+++ b/compilerplugins/clang/vclwidgets.cxx
@@ -379,8 +379,10 @@ static void findDisposeAndClearStatements(std::set<const FieldDecl*>& aVclPtrFie
         return;
     if (isa<CompoundStmt>(pStmt)) {
         const CompoundStmt *pCompoundStatement = dyn_cast<CompoundStmt>(pStmt);
-        for(const Stmt* pStmt : pCompoundStatement->body()) {
-            findDisposeAndClearStatements(aVclPtrFields, pStmt);
+        for (auto i = pCompoundStatement->body_begin();
+             i != pCompoundStatement->body_end(); ++i)
+        {
+            findDisposeAndClearStatements(aVclPtrFields, *i);
         }
         return;
     }
@@ -459,22 +461,24 @@ bool VCLWidgets::VisitFunctionDecl( const FunctionDecl* functionDecl )
             return true;
 
         std::set<const FieldDecl*> aVclPtrFields;
-        for(const auto& fieldDecl : pMethodDecl->getParent()->fields()) {
-            auto const type = loplugin::TypeCheck(fieldDecl->getType());
+        for (auto i = pMethodDecl->getParent()->field_begin();
+             i != pMethodDecl->getParent()->field_end(); ++i)
+        {
+            auto const type = loplugin::TypeCheck((*i)->getType());
             if (type.Class("VclPtr").GlobalNamespace()) {
-               aVclPtrFields.insert(fieldDecl);
+               aVclPtrFields.insert(*i);
             } else if (type.Class("vector").StdNamespace()
                        || type.Class("map").StdNamespace()
                        || type.Class("list").StdNamespace()
                        || type.Class("set").StdNamespace())
             {
-                const RecordType* recordType = dyn_cast_or_null<RecordType>(fieldDecl->getType()->getUnqualifiedDesugaredType());
+                const RecordType* recordType = dyn_cast_or_null<RecordType>((*i)->getType()->getUnqualifiedDesugaredType());
                 if (recordType) {
                     auto d = dyn_cast<ClassTemplateSpecializationDecl>(recordType->getDecl());
                     if (d && d->getTemplateArgs().size()>0) {
                         auto const type = loplugin::TypeCheck(d->getTemplateArgs()[0].getAsType());
                         if (type.Class("VclPtr").GlobalNamespace()) {
-                            aVclPtrFields.insert(fieldDecl);
+                            aVclPtrFields.insert(*i);
                         }
                     }
                 }


More information about the Libreoffice-commits mailing list