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. _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits