make cppunitassertequals a shared plugin

Change-Id: Ied9c26248cb72f2146fbe1a985f825f7525fa17c
Reviewed-on: https://gerrit.libreoffice.org/75836
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
This commit is contained in:
Noel Grandin
2019-07-18 11:02:49 +02:00
parent 8a08eaedfb
commit cc3d75e14c
2 changed files with 28 additions and 5 deletions

View File

@@ -6,6 +6,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#ifndef LO_CLANG_SHARED_PLUGINS
#include "plugin.hxx"
#include "check.hxx"
@@ -27,9 +28,14 @@ public:
explicit CppunitAssertEquals(loplugin::InstantiationData const & data):
FilteringPlugin(data) {}
virtual bool preRun() override
{
return compiler.getLangOpts().CPlusPlus;
}
virtual void run() override
{
if (compiler.getLangOpts().CPlusPlus) {
if (preRun()) {
TraverseDecl(compiler.getASTContext().getTranslationUnitDecl());
}
}
@@ -129,7 +135,7 @@ bool CppunitAssertEquals::VisitCallExpr(const CallExpr* callExpr)
}
// copied from stringconcat.cxx
Expr const * stripCtor(Expr const * expr) {
Expr const * stripConstructor(Expr const * expr) {
auto e0 = expr;
auto const e1 = dyn_cast<CXXFunctionalCastExpr>(e0);
if (e1 != nullptr) {
@@ -164,7 +170,7 @@ bool CppunitAssertEquals::isCompileTimeConstant(Expr const * expr)
return true;
// is string literal ?
expr = expr->IgnoreParenImpCasts();
expr = stripCtor(expr);
expr = stripConstructor(expr);
return isa<clang::StringLiteral>(expr);
}
@@ -220,8 +226,10 @@ void CppunitAssertEquals::reportEquals(
<< (name == "CPPUNIT_ASSERT_MESSAGE") << negative << range;
}
loplugin::Plugin::Registration< CppunitAssertEquals > X("cppunitassertequals");
loplugin::Plugin::Registration< CppunitAssertEquals > cppunitassertequals("cppunitassertequals");
}
} // namespace
#endif // LO_CLANG_SHARED_PLUGINS
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */