fix crash in refcounting plugin

introduced by commit c15b4cf39a
"Adapt to current Clang trunk towards 3.7"

Change-Id: I00f58d3bc79e641df9bba4e9b1d5c8463b87dc42
This commit is contained in:
Noel Grandin
2015-08-04 10:25:48 +02:00
parent 875e1b50a0
commit 3d5dc80b07
5 changed files with 6 additions and 5 deletions

View File

@@ -68,12 +68,13 @@ inline bool isInExternCContext(clang::FunctionDecl const & decl) {
inline bool forallBases( inline bool forallBases(
clang::CXXRecordDecl const & decl, clang::CXXRecordDecl const & decl,
clang::CXXRecordDecl::ForallBasesCallback BaseMatches, clang::CXXRecordDecl::ForallBasesCallback BaseMatches,
void* callbackParam,
bool AllowShortCircuit) bool AllowShortCircuit)
{ {
#if (__clang_major__ == 3 && __clang_minor__ >= 7) || __clang_major__ > 3 #if (__clang_major__ == 3 && __clang_minor__ >= 7) || __clang_major__ > 3
return decl.forallBases(BaseMatches, AllowShortCircuit); return decl.forallBases(BaseMatches, AllowShortCircuit);
#else #else
return decl.forallBases(BaseMatches, nullptr, AllowShortCircuit); return decl.forallBases(BaseMatches, callbackParam, AllowShortCircuit);
#endif #endif
} }

View File

@@ -90,7 +90,7 @@ bool isDerivedFrom(const CXXRecordDecl *decl, const char *pString) {
{ return BaseCheckNotSubclass( { return BaseCheckNotSubclass(
BaseDefinition, const_cast<char *>(pString)); }, BaseDefinition, const_cast<char *>(pString)); },
#endif #endif
true)) static_cast<void*>(const_cast<char*>(pString)), true))
{ {
return true; return true;
} }

View File

@@ -55,7 +55,7 @@ bool isDerivedFromTestFixture(const CXXRecordDecl *decl) {
if (// not sure what hasAnyDependentBases() does, if (// not sure what hasAnyDependentBases() does,
// but it avoids classes we don't want, e.g. WeakAggComponentImplHelper1 // but it avoids classes we don't want, e.g. WeakAggComponentImplHelper1
!decl->hasAnyDependentBases() && !decl->hasAnyDependentBases() &&
!compat::forallBases(*decl, BaseCheckNotTestFixtureSubclass, true)) { !compat::forallBases(*decl, BaseCheckNotTestFixtureSubclass, nullptr, true)) {
return true; return true;
} }
return false; return false;

View File

@@ -73,7 +73,7 @@ bool isDerivedFromDialog(const CXXRecordDecl *decl) {
if (// not sure what hasAnyDependentBases() does, if (// not sure what hasAnyDependentBases() does,
// but it avoids classes we don't want, e.g. WeakAggComponentImplHelper1 // but it avoids classes we don't want, e.g. WeakAggComponentImplHelper1
!decl->hasAnyDependentBases() && !decl->hasAnyDependentBases() &&
!compat::forallBases(*decl, BaseCheckNotDialogSubclass, true)) { !compat::forallBases(*decl, BaseCheckNotDialogSubclass, nullptr, true)) {
return true; return true;
} }
return false; return false;

View File

@@ -81,7 +81,7 @@ bool isDerivedFromWindow(const CXXRecordDecl *decl) {
if (// not sure what hasAnyDependentBases() does, if (// not sure what hasAnyDependentBases() does,
// but it avoids classes we don't want, e.g. WeakAggComponentImplHelper1 // but it avoids classes we don't want, e.g. WeakAggComponentImplHelper1
!decl->hasAnyDependentBases() && !decl->hasAnyDependentBases() &&
!compat::forallBases(*decl, BaseCheckNotWindowSubclass, true)) { !compat::forallBases(*decl, BaseCheckNotWindowSubclass, nullptr, true)) {
return true; return true;
} }
return false; return false;