summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-rename/USRFinder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/clang-rename/USRFinder.cpp')
-rw-r--r--clang-tools-extra/clang-rename/USRFinder.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/clang-tools-extra/clang-rename/USRFinder.cpp b/clang-tools-extra/clang-rename/USRFinder.cpp
index dff0bb9aef5..a586bc610ec 100644
--- a/clang-tools-extra/clang-rename/USRFinder.cpp
+++ b/clang-tools-extra/clang-rename/USRFinder.cpp
@@ -90,6 +90,25 @@ public:
TypeEndLoc);
}
+ bool VisitCXXConstructorDecl(clang::CXXConstructorDecl *ConstructorDecl) {
+ for (auto &Initializer : ConstructorDecl->inits()) {
+ if (Initializer->getSourceOrder() == -1) {
+ // Ignore implicit initializers.
+ continue;
+ }
+ if (const clang::FieldDecl *FieldDecl = Initializer->getMember()) {
+ const SourceLocation InitBeginLoc = Initializer->getSourceLocation(),
+ InitEndLoc = Lexer::getLocForEndOfToken(
+ InitBeginLoc, 0, Context.getSourceManager(),
+ Context.getLangOpts());
+ if (!setResult(FieldDecl, InitBeginLoc, InitEndLoc)) {
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+
// Other:
const NamedDecl *getNamedDecl() { return Result; }
OpenPOWER on IntegriCloud