summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2017-03-27 22:08:37 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2017-03-27 22:08:37 +0200
commit0e0a185011580d74e19c0054f1d0265c19d9eebd (patch)
tree62c78a0576a9bd7ce6f338fae9356a63ff8740ed
parent1807e68b135f26479ae6511dc9cc971e754e763f (diff)
one more thing to handle
-rw-r--r--clang/qa/data/rename-move-from-global.cxx.expected2
-rw-r--r--clang/rename.cxx15
2 files changed, 16 insertions, 1 deletions
diff --git a/clang/qa/data/rename-move-from-global.cxx.expected b/clang/qa/data/rename-move-from-global.cxx.expected
index 36b56e6..e2f7bcb 100644
--- a/clang/qa/data/rename-move-from-global.cxx.expected
+++ b/clang/qa/data/rename-move-from-global.cxx.expected
@@ -29,7 +29,7 @@ void ns::C::foo() {}
inline ns::C ns::C::bar()
{
- return C();
+ return ns::C();
}
inline ns::C& ns::C::operator +=(int /*x*/)
diff --git a/clang/rename.cxx b/clang/rename.cxx
index 750641f..dfe3bda 100644
--- a/clang/rename.cxx
+++ b/clang/rename.cxx
@@ -442,6 +442,21 @@ public:
{
return handleCXXNamedCastExpr(pExpr);
}
+
+ bool VisitMaterializeTemporaryExpr(clang::MaterializeTemporaryExpr* pExpr)
+ {
+ /*
+ * d.m_c = C();
+ * ^ Handle this.
+ */
+ if (const clang::RecordDecl* pDecl = pExpr->getType()->getAsCXXRecordDecl())
+ {
+ std::string aName = pDecl->getNameAsString();
+ RewriteText(pExpr->getExprLoc(), aName.length(), aName);
+ }
+
+ return true;
+ }
};
class RenameASTConsumer : public clang::ASTConsumer