diff options
Diffstat (limited to 'compilerplugins')
-rw-r--r-- | compilerplugins/clang/redundantcast.cxx | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/compilerplugins/clang/redundantcast.cxx b/compilerplugins/clang/redundantcast.cxx index 4bef116f481b..c18e1cf5be0e 100644 --- a/compilerplugins/clang/redundantcast.cxx +++ b/compilerplugins/clang/redundantcast.cxx @@ -304,6 +304,16 @@ bool RedundantCast::VisitCStyleCastExpr(CStyleCastExpr const * expr) { DiagnosticsEngine::Warning, "redundant cstyle enum cast from %0 to %1", expr->getExprLoc()) << t1 << t2 << expr->getSourceRange(); + return true; + } + if (loplugin::TypeCheck(t1).Typedef() && loplugin::TypeCheck(t2).Typedef() && t1 == t2 + && !compiler.getSourceManager().isMacroBodyExpansion(expr->getLocStart())) + { + report( + DiagnosticsEngine::Warning, + "redundant cstyle typedef cast from %0 to %1", expr->getExprLoc()) + << t1 << t2 << expr->getSourceRange(); + return true; } return true; } |