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

Noel Grandin noel at peralex.com
Tue Aug 4 01:27:55 PDT 2015


 compilerplugins/clang/compat.hxx              |    3 ++-
 compilerplugins/clang/refcounting.cxx         |    2 +-
 compilerplugins/clang/staticmethods.cxx       |    2 +-
 compilerplugins/clang/unusedvariablecheck.cxx |    2 +-
 compilerplugins/clang/vclwidgets.cxx          |    2 +-
 5 files changed, 6 insertions(+), 5 deletions(-)

New commits:
commit 3d5dc80b0760ad37537cf449e7ac3836f68ad910
Author: Noel Grandin <noel at peralex.com>
Date:   Tue Aug 4 10:25:48 2015 +0200

    fix crash in refcounting plugin
    
    introduced by commit c15b4cf39a74176cee64795129d76f411d2c0a69
    "Adapt to current Clang trunk towards 3.7"
    
    Change-Id: I00f58d3bc79e641df9bba4e9b1d5c8463b87dc42

diff --git a/compilerplugins/clang/compat.hxx b/compilerplugins/clang/compat.hxx
index d7fb644..4dd5d99 100644
--- a/compilerplugins/clang/compat.hxx
+++ b/compilerplugins/clang/compat.hxx
@@ -68,12 +68,13 @@ inline bool isInExternCContext(clang::FunctionDecl const & decl) {
 inline bool forallBases(
     clang::CXXRecordDecl const & decl,
     clang::CXXRecordDecl::ForallBasesCallback BaseMatches,
+    void* callbackParam,
     bool AllowShortCircuit)
 {
 #if (__clang_major__ == 3 && __clang_minor__ >= 7) || __clang_major__ > 3
     return decl.forallBases(BaseMatches, AllowShortCircuit);
 #else
-    return decl.forallBases(BaseMatches, nullptr, AllowShortCircuit);
+    return decl.forallBases(BaseMatches, callbackParam, AllowShortCircuit);
 #endif
 }
 
diff --git a/compilerplugins/clang/refcounting.cxx b/compilerplugins/clang/refcounting.cxx
index c82dfeb..7b859ff 100644
--- a/compilerplugins/clang/refcounting.cxx
+++ b/compilerplugins/clang/refcounting.cxx
@@ -90,7 +90,7 @@ bool isDerivedFrom(const CXXRecordDecl *decl, const char *pString) {
                 { return BaseCheckNotSubclass(
                         BaseDefinition, const_cast<char *>(pString)); },
 #endif
-            true))
+            static_cast<void*>(const_cast<char*>(pString)), true))
     {
         return true;
     }
diff --git a/compilerplugins/clang/staticmethods.cxx b/compilerplugins/clang/staticmethods.cxx
index 4fbddeb..a02348f 100644
--- a/compilerplugins/clang/staticmethods.cxx
+++ b/compilerplugins/clang/staticmethods.cxx
@@ -55,7 +55,7 @@ bool isDerivedFromTestFixture(const CXXRecordDecl *decl) {
     if (// not sure what hasAnyDependentBases() does,
         // but it avoids classes we don't want, e.g. WeakAggComponentImplHelper1
         !decl->hasAnyDependentBases() &&
-        !compat::forallBases(*decl, BaseCheckNotTestFixtureSubclass, true)) {
+        !compat::forallBases(*decl, BaseCheckNotTestFixtureSubclass, nullptr, true)) {
         return true;
     }
     return false;
diff --git a/compilerplugins/clang/unusedvariablecheck.cxx b/compilerplugins/clang/unusedvariablecheck.cxx
index 9bbb9d5..80e32b8 100644
--- a/compilerplugins/clang/unusedvariablecheck.cxx
+++ b/compilerplugins/clang/unusedvariablecheck.cxx
@@ -73,7 +73,7 @@ bool isDerivedFromDialog(const CXXRecordDecl *decl) {
     if (// not sure what hasAnyDependentBases() does,
         // but it avoids classes we don't want, e.g. WeakAggComponentImplHelper1
         !decl->hasAnyDependentBases() &&
-        !compat::forallBases(*decl, BaseCheckNotDialogSubclass, true)) {
+        !compat::forallBases(*decl, BaseCheckNotDialogSubclass, nullptr, true)) {
         return true;
     }
     return false;
diff --git a/compilerplugins/clang/vclwidgets.cxx b/compilerplugins/clang/vclwidgets.cxx
index 032dc93..ea0cdff 100644
--- a/compilerplugins/clang/vclwidgets.cxx
+++ b/compilerplugins/clang/vclwidgets.cxx
@@ -81,7 +81,7 @@ bool isDerivedFromWindow(const CXXRecordDecl *decl) {
     if (// not sure what hasAnyDependentBases() does,
         // but it avoids classes we don't want, e.g. WeakAggComponentImplHelper1
         !decl->hasAnyDependentBases() &&
-        !compat::forallBases(*decl, BaseCheckNotWindowSubclass, true)) {
+        !compat::forallBases(*decl, BaseCheckNotWindowSubclass, nullptr, true)) {
         return true;
     }
     return false;


More information about the Libreoffice-commits mailing list