Author: Haojian Wu Date: 2023-01-08T15:48:04+01:00 New Revision: f7e9d5b43e72439f5841f9ff5ef690a625fd312c
URL: https://github.com/llvm/llvm-project/commit/f7e9d5b43e72439f5841f9ff5ef690a625fd312c DIFF: https://github.com/llvm/llvm-project/commit/f7e9d5b43e72439f5841f9ff5ef690a625fd312c.diff LOG: [clangd] Fix an inlay-hint crash on a null deduced type. Added: Modified: clang-tools-extra/clangd/InlayHints.cpp clang-tools-extra/clangd/unittests/InlayHintTests.cpp Removed: ################################################################################ diff --git a/clang-tools-extra/clangd/InlayHints.cpp b/clang-tools-extra/clangd/InlayHints.cpp index 30c7c05e3c02..f4e38aeb653e 100644 --- a/clang-tools-extra/clangd/InlayHints.cpp +++ b/clang-tools-extra/clangd/InlayHints.cpp @@ -671,7 +671,8 @@ class InlayHintVisitor : public RecursiveASTVisitor<InlayHintVisitor> { if (QT->isDecltypeType()) return true; if (const AutoType *AT = QT->getContainedAutoType()) - if (AT->getDeducedType()->isDecltypeType()) + if (!AT->getDeducedType().isNull() && + AT->getDeducedType()->isDecltypeType()) return true; return false; } diff --git a/clang-tools-extra/clangd/unittests/InlayHintTests.cpp b/clang-tools-extra/clangd/unittests/InlayHintTests.cpp index 53621f97a604..06f2c055a4d3 100644 --- a/clang-tools-extra/clangd/unittests/InlayHintTests.cpp +++ b/clang-tools-extra/clangd/unittests/InlayHintTests.cpp @@ -1378,11 +1378,16 @@ TEST(TypeHints, Decltype) { using G = Foo<$g[[decltype(0)]], float>; auto $h[[h]] = $i[[decltype(0)]]{}; + + // No crash + /* error-ok */ + auto $j[[s]]; )cpp", ExpectedHint{": int", "a"}, ExpectedHint{": int", "b"}, ExpectedHint{": int", "c"}, ExpectedHint{": int", "e"}, ExpectedHint{": int", "f"}, ExpectedHint{": int", "g"}, - ExpectedHint{": int", "h"}, ExpectedHint{": int", "i"}); + ExpectedHint{": int", "h"}, ExpectedHint{": int", "i"}, + ExpectedHint{": auto", "j"}); } TEST(DesignatorHints, Basic) { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits