[clang-tools-extra] r276259 - [clang-rename] check whether -new-name is valid identifier in C++17
Kirill Bobyrev via cfe-commits
cfe-commits at lists.llvm.org
Thu Jul 21 03:21:31 PDT 2016
Author: omtcyfz
Date: Thu Jul 21 05:21:31 2016
New Revision: 276259
URL: http://llvm.org/viewvc/llvm-project?rev=276259&view=rev
Log:
[clang-rename] check whether -new-name is valid identifier in C++17
Added:
clang-tools-extra/trunk/test/clang-rename/InvalidNewName.cpp
Modified:
clang-tools-extra/trunk/clang-rename/tool/ClangRename.cpp
clang-tools-extra/trunk/test/clang-rename/NoNewName.cpp
Modified: clang-tools-extra/trunk/clang-rename/tool/ClangRename.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-rename/tool/ClangRename.cpp?rev=276259&r1=276258&r2=276259&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-rename/tool/ClangRename.cpp (original)
+++ clang-tools-extra/trunk/clang-rename/tool/ClangRename.cpp Thu Jul 21 05:21:31 2016
@@ -99,7 +99,18 @@ int main(int argc, const char **argv) {
// Check the arguments for correctness.
if (NewName.empty()) {
- errs() << "clang-rename: no new name provided.\n\n";
+ errs() << "ERROR: no new name provided.\n\n";
+ exit(1);
+ }
+
+ // Check if NewName is a valid identifier in C++17.
+ LangOptions Options;
+ Options.CPlusPlus = true;
+ Options.CPlusPlus1z = true;
+ IdentifierTable Table(Options);
+ auto NewNameTokKind = Table.get(NewName).getTokenID();
+ if (!tok::isAnyIdentifier(NewNameTokKind)) {
+ errs() << "ERROR: new name is not a valid identifier in C++17.\n\n";
exit(1);
}
Added: clang-tools-extra/trunk/test/clang-rename/InvalidNewName.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-rename/InvalidNewName.cpp?rev=276259&view=auto
==============================================================================
--- clang-tools-extra/trunk/test/clang-rename/InvalidNewName.cpp (added)
+++ clang-tools-extra/trunk/test/clang-rename/InvalidNewName.cpp Thu Jul 21 05:21:31 2016
@@ -0,0 +1,2 @@
+// RUN: not clang-rename -new-name=class -offset=133 %s 2>&1 | FileCheck %s
+// CHECK: ERROR: new name is not a valid identifier in C++17.
Modified: clang-tools-extra/trunk/test/clang-rename/NoNewName.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-rename/NoNewName.cpp?rev=276259&r1=276258&r2=276259&view=diff
==============================================================================
--- clang-tools-extra/trunk/test/clang-rename/NoNewName.cpp (original)
+++ clang-tools-extra/trunk/test/clang-rename/NoNewName.cpp Thu Jul 21 05:21:31 2016
@@ -1,4 +1,4 @@
// Check for an error while -new-name argument has not been passed to
// clang-rename.
// RUN: not clang-rename -offset=133 %s 2>&1 | FileCheck %s
-// CHECK: clang-rename: no new name provided.
+// CHECK: ERROR: no new name provided.
More information about the cfe-commits
mailing list