loplugin:redundantcast: cstyle_cast within reinterpret_cast

Change-Id: Ie31c9dd6d8741aa856553b798bb5b7f695a3fe0f
Reviewed-on: https://gerrit.libreoffice.org/42776
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Stephan Bergmann <sbergman@redhat.com>
This commit is contained in:
Stephan Bergmann
2017-09-26 08:35:32 +02:00
parent 2be37f4040
commit d883e3556a
2 changed files with 22 additions and 0 deletions

View File

@@ -522,6 +522,20 @@ bool RedundantCast::VisitCXXReinterpretCastExpr(
expr->getExprLoc())
<< expr->getSubExprAsWritten()->getType() << expr->getType()
<< expr->getSourceRange();
} else if (expr->getType()->isFundamentalType()) {
if (auto const sub = dyn_cast<CXXConstCastExpr>(
expr->getSubExpr()->IgnoreParens()))
{
report(
DiagnosticsEngine::Warning,
("redundant const_cast from %0 to %1 within reinterpret_cast to"
" fundamental type %2"),
expr->getExprLoc())
<< sub->getSubExprAsWritten()->getType()
<< sub->getTypeAsWritten() << expr->getTypeAsWritten()
<< expr->getSourceRange();
return true;
}
}
return true;
}