improve loplugin:unusedfields
noticed something that wasn't being picked up, wrote some tests, and found an unhandled case in Plugin::getParentFunctionDecl Change-Id: I52b4ea273be6614e197392dfc4d6053bbc1704de Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90141 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
This commit is contained in:
@@ -217,9 +217,31 @@ static const Decl* getDeclContext(ASTContext& context, const Stmt* stmt)
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
static const Decl* getFunctionDeclContext(ASTContext& context, const Stmt* stmt)
|
||||
{
|
||||
auto it = context.getParents(*stmt).begin();
|
||||
|
||||
if (it == context.getParents(*stmt).end())
|
||||
return nullptr;
|
||||
|
||||
const Decl *decl = it->get<Decl>();
|
||||
if (decl)
|
||||
{
|
||||
if (isa<VarDecl>(decl))
|
||||
return dyn_cast<FunctionDecl>(decl->getDeclContext());
|
||||
return decl;
|
||||
}
|
||||
|
||||
stmt = it->get<Stmt>();
|
||||
if (stmt)
|
||||
return getFunctionDeclContext(context, stmt);
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
const FunctionDecl* Plugin::getParentFunctionDecl( const Stmt* stmt )
|
||||
{
|
||||
const Decl *decl = getDeclContext(compiler.getASTContext(), stmt);
|
||||
const Decl *decl = getFunctionDeclContext(compiler.getASTContext(), stmt);
|
||||
if (decl)
|
||||
return static_cast<const FunctionDecl*>(decl->getNonClosureContext());
|
||||
|
||||
|
Reference in New Issue
Block a user