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:
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
@@ -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;
|
||||||
|
@@ -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;
|
||||||
|
@@ -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;
|
||||||
|
Reference in New Issue
Block a user