clang-rename: implement handling of remaining named casts

const_cast<> and reinterpret_cast<>.

Reviewers: klimek

Differential Revision: http://reviews.llvm.org/D21270

llvm-svn: 272574
This commit is contained in:
Miklos Vajna 2016-06-13 18:50:45 +00:00
parent 6530a3e73f
commit 6ff8f25a51
3 changed files with 42 additions and 0 deletions

View File

@ -131,6 +131,14 @@ public:
return handleCXXNamedCastExpr(Expr);
}
bool VisitCXXReinterpretCastExpr(clang::CXXReinterpretCastExpr *Expr) {
return handleCXXNamedCastExpr(Expr);
}
bool VisitCXXConstCastExpr(clang::CXXConstCastExpr *Expr) {
return handleCXXNamedCastExpr(Expr);
}
// Non-visitors:
// \brief Returns a list of unique locations. Duplicate or overlapping

View File

@ -0,0 +1,17 @@
// RUN: cat %s > %t.cpp
// RUN: clang-rename -offset=133 -new-name=X %t.cpp -i --
// RUN: sed 's,//.*,,' %t.cpp | FileCheck %s
class Cla {
public:
int getValue() {
return 0;
}
};
int main() {
const Cla *C = new Cla();
const_cast<Cla *>(C)->getValue(); // CHECK: const_cast<X *>
}
// Use grep -FUbo 'Cla' <file> to get the correct offset of foo when changing
// this file.

View File

@ -0,0 +1,17 @@
// RUN: cat %s > %t.cpp
// RUN: clang-rename -offset=133 -new-name=X %t.cpp -i --
// RUN: sed 's,//.*,,' %t.cpp | FileCheck %s
class Cla {
public:
int getValue() const {
return 0;
}
};
int main() {
void *C = new Cla();
reinterpret_cast<const Cla *>(C)->getValue(); // CHECK: reinterpret_cast<const X *>
}
// Use grep -FUbo 'Cla' <file> to get the correct offset of foo when changing
// this file.