diff options
author | Noel Grandin <noel@peralex.com> | 2014-06-09 11:36:13 +0200 |
---|---|---|
committer | Noel Grandin <noel@peralex.com> | 2014-06-09 11:37:17 +0200 |
commit | 6921edd448c901cdc9e132886b5b102bdd368ad9 (patch) | |
tree | 57bb49bfb81c94578cdbee03b99fe081a7592a79 /compilerplugins/clang | |
parent | d92c199664a122b46ef0d3a64261fe05a84edb20 (diff) |
compile fix
after my commit 184a00b96235f6432294ded63ce4a4a318effdb5
"loplugin: inlinesimplememberfunctions"
Change-Id: Ib46d862b90566506c3035a12eeb01892b225ed51
Diffstat (limited to 'compilerplugins/clang')
-rw-r--r-- | compilerplugins/clang/inlinesimplememberfunctions.cxx | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/compilerplugins/clang/inlinesimplememberfunctions.cxx b/compilerplugins/clang/inlinesimplememberfunctions.cxx index cd5aa238b66e..0d4428c843dc 100644 --- a/compilerplugins/clang/inlinesimplememberfunctions.cxx +++ b/compilerplugins/clang/inlinesimplememberfunctions.cxx @@ -153,6 +153,32 @@ bool InlineSimpleMemberFunctions::VisitCXXMethodDecl(const CXXMethodDecl * funct MemberExpr CXXThisExpr */ + childStmt = *(*compoundStmt->child_begin())->child_begin(); + while (1) { + if (! oneAndOnlyOne( childStmt->children() )) + return true; + if (dyn_cast<CXXThisExpr>( childStmt ) != nullptr) { + + compoundStmt->dump(); + if (!rewrite(functionDecl)) + { + report( + DiagnosticsEngine::Warning, + "inlinesimpleaccessmethods", + functionDecl->getSourceRange().getBegin()) + << functionDecl->getSourceRange(); + // display the location of the class member declaration + report( + DiagnosticsEngine::Note, + "inlinesimpleaccessmethods", + functionDecl->getCanonicalDecl()->getSourceRange().getBegin()) + << functionDecl->getCanonicalDecl()->getSourceRange(); + } + return true; + } + childStmt = *childStmt->child_begin(); + } +/* if (dyn_cast<ImplicitCastExpr>( childStmt ) != nullptr && oneAndOnlyOne( childStmt->children() )) { @@ -182,7 +208,7 @@ bool InlineSimpleMemberFunctions::VisitCXXMethodDecl(const CXXMethodDecl * funct } } } - +*/ return true; } @@ -288,7 +314,7 @@ bool InlineSimpleMemberFunctions::rewrite(const CXXMethodDecl * functionDecl) { return replaceText(canonicalDecl->getLocEnd().getLocWithOffset(p2 - p1 + 1), 1, s1); } -loplugin::Plugin::Registration< InlineSimpleMemberFunctions > X("inlinesimplememberfunctions"); +loplugin::Plugin::Registration< InlineSimpleMemberFunctions > X("inlinesimplememberfunctions", true); } |