summaryrefslogtreecommitdiff
path: root/compilerplugins
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2015-08-04 10:25:48 +0200
committerNoel Grandin <noel@peralex.com>2015-08-04 10:25:48 +0200
commit3d5dc80b0760ad37537cf449e7ac3836f68ad910 (patch)
tree69a97193eb09f85d74be4d229804274cd01d6506 /compilerplugins
parent875e1b50a069a46f59d4c64399ec09ff574fee87 (diff)
fix crash in refcounting plugin
introduced by commit c15b4cf39a74176cee64795129d76f411d2c0a69 "Adapt to current Clang trunk towards 3.7" Change-Id: I00f58d3bc79e641df9bba4e9b1d5c8463b87dc42
Diffstat (limited to 'compilerplugins')
-rw-r--r--compilerplugins/clang/compat.hxx3
-rw-r--r--compilerplugins/clang/refcounting.cxx2
-rw-r--r--compilerplugins/clang/staticmethods.cxx2
-rw-r--r--compilerplugins/clang/unusedvariablecheck.cxx2
-rw-r--r--compilerplugins/clang/vclwidgets.cxx2
5 files changed, 6 insertions, 5 deletions
diff --git a/compilerplugins/clang/compat.hxx b/compilerplugins/clang/compat.hxx
index d7fb644984cc..4dd5d992aa27 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 c82dfeb8bad9..7b859ff65f22 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 4fbddeb0d262..a02348f9205c 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 9bbb9d5e6ae2..80e32b80d5e1 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 032dc937a3df..ea0cdffecabb 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;