kadircet updated this revision to Diff 508934. kadircet added a comment. Herald added a project: clang-tools-extra.
- Add test Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D146634/new/ https://reviews.llvm.org/D146634 Files: clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp clang/lib/Index/USRGeneration.cpp Index: clang/lib/Index/USRGeneration.cpp =================================================================== --- clang/lib/Index/USRGeneration.cpp +++ clang/lib/Index/USRGeneration.cpp @@ -262,6 +262,12 @@ // Mangle in type information for the arguments. for (auto *PD : D->parameters()) { + // FIXME: Make sure we don't have nullptrs in parameter lists of function + // decls. + if (!PD) { + IgnoreResults = true; + return; + } Out << '#'; VisitType(PD->getType()); } Index: clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp =================================================================== --- clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp +++ clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp @@ -4002,6 +4002,19 @@ EXPECT_EQ(Second.activeParameter, 1); } +TEST(CompletionTest, NoCrashTests) { + llvm::StringLiteral Cases[] = { + R"cpp( + template <typename = int> struct Foo {}; + auto a = [x(3)](Foo<^>){}; + )cpp", + }; + for (auto Case : Cases) { + SCOPED_TRACE(Case); + auto Completions = completions(Case); + } +} + } // namespace } // namespace clangd } // namespace clang
Index: clang/lib/Index/USRGeneration.cpp =================================================================== --- clang/lib/Index/USRGeneration.cpp +++ clang/lib/Index/USRGeneration.cpp @@ -262,6 +262,12 @@ // Mangle in type information for the arguments. for (auto *PD : D->parameters()) { + // FIXME: Make sure we don't have nullptrs in parameter lists of function + // decls. + if (!PD) { + IgnoreResults = true; + return; + } Out << '#'; VisitType(PD->getType()); } Index: clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp =================================================================== --- clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp +++ clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp @@ -4002,6 +4002,19 @@ EXPECT_EQ(Second.activeParameter, 1); } +TEST(CompletionTest, NoCrashTests) { + llvm::StringLiteral Cases[] = { + R"cpp( + template <typename = int> struct Foo {}; + auto a = [x(3)](Foo<^>){}; + )cpp", + }; + for (auto Case : Cases) { + SCOPED_TRACE(Case); + auto Completions = completions(Case); + } +} + } // namespace } // namespace clangd } // namespace clang
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits