This revision was automatically updated to reflect the committed changes. Closed by commit rG555eacf75f21: [clangd] Fix undefined behavior when generating error message at rename with an… (authored by ArcsinX).
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D115959/new/ https://reviews.llvm.org/D115959 Files: clang-tools-extra/clangd/refactor/Rename.cpp clang-tools-extra/clangd/unittests/RenameTests.cpp Index: clang-tools-extra/clangd/unittests/RenameTests.cpp =================================================================== --- clang-tools-extra/clangd/unittests/RenameTests.cpp +++ clang-tools-extra/clangd/unittests/RenameTests.cpp @@ -1060,6 +1060,11 @@ )cpp", "conflict", !HeaderFile, "Conflict"}, + {R"cpp( + int V^ar; + )cpp", + "\"const\" is a keyword", !HeaderFile, "const"}, + {R"cpp(// Trying to rename into the same name, SameName == SameName. void func() { int S^ameName; Index: clang-tools-extra/clangd/refactor/Rename.cpp =================================================================== --- clang-tools-extra/clangd/refactor/Rename.cpp +++ clang-tools-extra/clangd/refactor/Rename.cpp @@ -455,7 +455,7 @@ } llvm::Error makeError(InvalidName Reason) { - auto Message = [](InvalidName Reason) { + auto Message = [](const InvalidName &Reason) { switch (Reason.K) { case InvalidName::Keywords: return llvm::formatv("the chosen name \"{0}\" is a keyword", @@ -733,7 +733,7 @@ return makeError(ReasonToReject::SameName); auto Invalid = checkName(RenameDecl, RInputs.NewName); if (Invalid) - return makeError(*Invalid); + return makeError(std::move(*Invalid)); auto Reject = renameable(RenameDecl, RInputs.MainFilePath, RInputs.Index); if (Reject)
Index: clang-tools-extra/clangd/unittests/RenameTests.cpp =================================================================== --- clang-tools-extra/clangd/unittests/RenameTests.cpp +++ clang-tools-extra/clangd/unittests/RenameTests.cpp @@ -1060,6 +1060,11 @@ )cpp", "conflict", !HeaderFile, "Conflict"}, + {R"cpp( + int V^ar; + )cpp", + "\"const\" is a keyword", !HeaderFile, "const"}, + {R"cpp(// Trying to rename into the same name, SameName == SameName. void func() { int S^ameName; Index: clang-tools-extra/clangd/refactor/Rename.cpp =================================================================== --- clang-tools-extra/clangd/refactor/Rename.cpp +++ clang-tools-extra/clangd/refactor/Rename.cpp @@ -455,7 +455,7 @@ } llvm::Error makeError(InvalidName Reason) { - auto Message = [](InvalidName Reason) { + auto Message = [](const InvalidName &Reason) { switch (Reason.K) { case InvalidName::Keywords: return llvm::formatv("the chosen name \"{0}\" is a keyword", @@ -733,7 +733,7 @@ return makeError(ReasonToReject::SameName); auto Invalid = checkName(RenameDecl, RInputs.NewName); if (Invalid) - return makeError(*Invalid); + return makeError(std::move(*Invalid)); auto Reject = renameable(RenameDecl, RInputs.MainFilePath, RInputs.Index); if (Reject)
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits