From 2e5fca77a68e491b1f4f5503fa6d4479a06bd463 Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Tue, 30 Aug 2016 07:23:24 +0000 Subject: [PATCH] clang-rename: improve error message when -old-name is used and could not find symbol Old output was: clang-rename: could not find symbol at tools/clang/tools/extra/test/clang-rename/ClassFindByName.cpp:1:1 (offset 0). Reviewers: omtcyfz Differential Revision: https://reviews.llvm.org/D24002 llvm-svn: 280062 --- clang-tools-extra/clang-rename/USRFindingAction.cpp | 15 +++++++++------ clang-tools-extra/test/clang-rename/InvalidOldName.cpp | 2 ++ 2 files changed, 11 insertions(+), 6 deletions(-) create mode 100644 clang-tools-extra/test/clang-rename/InvalidOldName.cpp diff --git a/clang-tools-extra/clang-rename/USRFindingAction.cpp b/clang-tools-extra/clang-rename/USRFindingAction.cpp index 469d365..c92e031 100644 --- a/clang-tools-extra/clang-rename/USRFindingAction.cpp +++ b/clang-tools-extra/clang-rename/USRFindingAction.cpp @@ -157,12 +157,15 @@ struct NamedDeclFindingConsumer : public ASTConsumer { FoundDecl = getNamedDeclFor(Context, OldName); } if (FoundDecl == nullptr) { - FullSourceLoc FullLoc(Point, SourceMgr); - errs() << "clang-rename: could not find symbol at " - << SourceMgr.getFilename(Point) << ":" - << FullLoc.getSpellingLineNumber() << ":" - << FullLoc.getSpellingColumnNumber() << " (offset " << SymbolOffset - << ").\n"; + if (OldName.empty()) { + FullSourceLoc FullLoc(Point, SourceMgr); + errs() << "clang-rename: could not find symbol at " + << SourceMgr.getFilename(Point) << ":" + << FullLoc.getSpellingLineNumber() << ":" + << FullLoc.getSpellingColumnNumber() << " (offset " + << SymbolOffset << ").\n"; + } else + errs() << "clang-rename: could not find symbol " << OldName << ".\n"; return; } diff --git a/clang-tools-extra/test/clang-rename/InvalidOldName.cpp b/clang-tools-extra/test/clang-rename/InvalidOldName.cpp new file mode 100644 index 0000000..11f2763 --- /dev/null +++ b/clang-tools-extra/test/clang-rename/InvalidOldName.cpp @@ -0,0 +1,2 @@ +// RUN: not clang-rename rename-all -new-name=Foo -old-name=Bar %s -- 2>&1 | FileCheck %s +// CHECK: clang-rename: could not find symbol Bar. -- 2.7.4