summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang-tools-extra/clang-rename/RenamingAction.cpp3
-rw-r--r--clang-tools-extra/clang-rename/USRLocFinder.cpp22
-rw-r--r--clang-tools-extra/clang-rename/USRLocFinder.h18
-rw-r--r--clang-tools-extra/clang-rename/tool/ClangRename.cpp12
-rw-r--r--clang-tools-extra/test/clang-rename/NoNewName.cpp20
5 files changed, 47 insertions, 28 deletions
diff --git a/clang-tools-extra/clang-rename/RenamingAction.cpp b/clang-tools-extra/clang-rename/RenamingAction.cpp
index ac04ae1633e..720190f6562 100644
--- a/clang-tools-extra/clang-rename/RenamingAction.cpp
+++ b/clang-tools-extra/clang-rename/RenamingAction.cpp
@@ -49,7 +49,8 @@ public:
std::vector<SourceLocation> NewCandidates;
for (const auto &USR : USRs) {
- NewCandidates = getLocationsOfUSR(USR, PrevName, Context.getTranslationUnitDecl());
+ NewCandidates = getLocationsOfUSR(USR, PrevName,
+ Context.getTranslationUnitDecl());
RenamingCandidates.insert(RenamingCandidates.end(), NewCandidates.begin(),
NewCandidates.end());
NewCandidates.clear();
diff --git a/clang-tools-extra/clang-rename/USRLocFinder.cpp b/clang-tools-extra/clang-rename/USRLocFinder.cpp
index 878c4babd28..02982b7a2be 100644
--- a/clang-tools-extra/clang-rename/USRLocFinder.cpp
+++ b/clang-tools-extra/clang-rename/USRLocFinder.cpp
@@ -34,8 +34,8 @@ namespace {
class USRLocFindingASTVisitor
: public clang::RecursiveASTVisitor<USRLocFindingASTVisitor> {
public:
- explicit USRLocFindingASTVisitor(StringRef USR, StringRef PrevName) : USR(USR), PrevName(PrevName) {
- }
+ explicit USRLocFindingASTVisitor(StringRef USR, StringRef PrevName)
+ : USR(USR), PrevName(PrevName) {}
// Declaration visitors:
@@ -60,8 +60,7 @@ public:
bool VisitCXXConstructorDecl(clang::CXXConstructorDecl *ConstructorDecl) {
const ASTContext &Context = ConstructorDecl->getASTContext();
- for (clang::CXXConstructorDecl::init_const_iterator it = ConstructorDecl->init_begin(); it != ConstructorDecl->init_end(); ++it) {
- const clang::CXXCtorInitializer* Initializer = *it;
+ for (auto &Initializer : ConstructorDecl->inits()) {
if (Initializer->getSourceOrder() == -1) {
// Ignore implicit initializers.
continue;
@@ -71,9 +70,12 @@ public:
if (getUSRForDecl(FieldDecl) == USR) {
// The initializer refers to a field that is to be renamed.
SourceLocation Location = Initializer->getSourceLocation();
- StringRef TokenName = Lexer::getSourceText(CharSourceRange::getTokenRange(Location), Context.getSourceManager(), Context.getLangOpts());
+ StringRef TokenName = Lexer::getSourceText(
+ CharSourceRange::getTokenRange(Location),
+ Context.getSourceManager(), Context.getLangOpts());
if (TokenName == PrevName) {
- // The token of the source location we find actually has the old name.
+ // The token of the source location we find actually has the old
+ // name.
LocationsFound.push_back(Initializer->getSourceLocation());
}
}
@@ -183,14 +185,15 @@ private:
bool handleCXXNamedCastExpr(clang::CXXNamedCastExpr *Expr) {
clang::QualType Type = Expr->getType();
// See if this a cast of a pointer.
- const RecordDecl* Decl = Type->getPointeeCXXRecordDecl();
+ const RecordDecl *Decl = Type->getPointeeCXXRecordDecl();
if (!Decl) {
// See if this is a cast of a reference.
Decl = Type->getAsCXXRecordDecl();
}
if (Decl && getUSRForDecl(Decl) == USR) {
- SourceLocation Location = Expr->getTypeInfoAsWritten()->getTypeLoc().getBeginLoc();
+ SourceLocation Location =
+ Expr->getTypeInfoAsWritten()->getTypeLoc().getBeginLoc();
LocationsFound.push_back(Location);
}
@@ -205,8 +208,7 @@ private:
};
} // namespace
-std::vector<SourceLocation> getLocationsOfUSR(StringRef USR,
- StringRef PrevName,
+std::vector<SourceLocation> getLocationsOfUSR(StringRef USR, StringRef PrevName,
Decl *Decl) {
USRLocFindingASTVisitor visitor(USR, PrevName);
diff --git a/clang-tools-extra/clang-rename/USRLocFinder.h b/clang-tools-extra/clang-rename/USRLocFinder.h
index d3782a9c45d..e70af59a06f 100644
--- a/clang-tools-extra/clang-rename/USRLocFinder.h
+++ b/clang-tools-extra/clang-rename/USRLocFinder.h
@@ -16,23 +16,19 @@
#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_RENAME_USR_LOC_FINDER_H
#define LLVM_CLANG_TOOLS_EXTRA_CLANG_RENAME_USR_LOC_FINDER_H
+#include "clang/AST/AST.h"
+#include "llvm/ADT/StringRef.h"
#include <string>
#include <vector>
-#include "llvm/ADT/StringRef.h"
-
namespace clang {
-
-class Decl;
-class SourceLocation;
-
namespace rename {
// FIXME: make this an AST matcher. Wouldn't that be awesome??? I agree!
-std::vector<SourceLocation> getLocationsOfUSR(llvm::StringRef usr,
- llvm::StringRef PrevName,
- Decl *decl);
-}
-}
+std::vector<SourceLocation>
+getLocationsOfUSR(llvm::StringRef USR, llvm::StringRef PrevName, Decl *Decl);
+
+} // namespace rename
+} // namespace clang
#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_RENAME_USR_LOC_FINDER_H
diff --git a/clang-tools-extra/clang-rename/tool/ClangRename.cpp b/clang-tools-extra/clang-rename/tool/ClangRename.cpp
index 06f719abfb9..e3bdfcd7704 100644
--- a/clang-tools-extra/clang-rename/tool/ClangRename.cpp
+++ b/clang-tools-extra/clang-rename/tool/ClangRename.cpp
@@ -36,7 +36,6 @@
#include "clang/Tooling/Tooling.h"
#include "llvm/ADT/IntrusiveRefCntPtr.h"
#include "llvm/Support/Host.h"
-#include <cstdlib>
#include <string>
using namespace llvm;
@@ -83,7 +82,7 @@ ExportFixes(
#define CLANG_RENAME_VERSION "0.0.1"
static void PrintVersion() {
- outs() << "clang-rename version " << CLANG_RENAME_VERSION << "\n";
+ outs() << "clang-rename version " << CLANG_RENAME_VERSION << '\n';
}
using namespace clang;
@@ -101,7 +100,6 @@ int main(int argc, const char **argv) {
if (NewName.empty()) {
errs() << "clang-rename: no new name provided.\n\n";
- cl::PrintHelpMessage();
exit(1);
}
@@ -115,12 +113,14 @@ int main(int argc, const char **argv) {
const auto &USRs = USRAction.getUSRs();
const auto &PrevName = USRAction.getUSRSpelling();
- if (PrevName.empty())
+ if (PrevName.empty()) {
// An error should have already been printed.
exit(1);
+ }
- if (PrintName)
- errs() << "clang-rename: found name: " << PrevName << "\n";
+ if (PrintName) {
+ errs() << "clang-rename: found name: " << PrevName << '\n';
+ }
// Perform the renaming.
rename::RenamingAction RenameAction(NewName, PrevName, USRs,
diff --git a/clang-tools-extra/test/clang-rename/NoNewName.cpp b/clang-tools-extra/test/clang-rename/NoNewName.cpp
new file mode 100644
index 00000000000..a706f4263e1
--- /dev/null
+++ b/clang-tools-extra/test/clang-rename/NoNewName.cpp
@@ -0,0 +1,20 @@
+// This test is a copy of ConstCastExpr.cpp with a single change:
+// -new-name hasn't been passed to clang-rename, so this test should give an
+// error.
+// RUN: not clang-rename -offset=133 %s 2>&1 | FileCheck %s
+// CHECK: clang-rename: no new name provided.
+
+class Cla {
+public:
+ int getValue() {
+ return 0;
+ }
+};
+
+int main() {
+ const Cla *C = new Cla();
+ const_cast<Cla *>(C)->getValue();
+}
+
+// Use grep -FUbo 'Cla' <file> to get the correct offset of foo when changing
+// this file.
OpenPOWER on IntegriCloud