<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/143006>143006</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            clangd crash with this simple code
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          zkzzkk
      </td>
    </tr>
</table>

<pre>
    [log.txt](https://github.com/user-attachments/files/20614649/log.txt)

I have this simple code in test.cpp, and clangd crashes on parsing it.
test.cpp:
···
typedef T (*foo)(V);
typedef T (*bar)(V);
bar b;

void test()
{
    b(x);
}
···

The crash stack:
 #0 0x000000000055715b llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /__w/clangd/clangd/llvm-project/llvm/lib/Support/Unix/Signals.inc:723:13
 #1 0x0000000000554fbe llvm::sys::RunSignalHandlers() /__w/clangd/clangd/llvm-project/llvm/lib/Support/Signals.cpp:106:18
 #2 0x0000000000557af6 SignalHandler(int) /__w/clangd/clangd/llvm-project/llvm/lib/Support/Unix/Signals.inc:413:1
 #3 0x00007efde05a0520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x00000000016e51ba isValid /__w/clangd/clangd/llvm-project/clang/include/clang/Basic/SourceLocation.h:113:36
 #5 0x00000000016e51ba isExplicitObjectParameter /__w/clangd/clangd/llvm-project/clang/include/clang/AST/Decl.h:1811:49
 #6 0x00000000016e51ba maybeDropCxxExplicitObjectParameters /__w/clangd/clangd/llvm-project/clang-tools-extra/clangd/InlayHints.cpp:370:42
 #7 0x00000000016e51ba clang::clangd::(anonymous namespace)::InlayHintVisitor::processCall(clang::clangd::(anonymous namespace)::Callee, llvm::ArrayRef<clang::Expr const*>) /__w/clangd/clangd/llvm-project/clang-tools-extra/clangd/InlayHints.cpp:733:16
 #8 0x00000000016e2d2c ~_Vector_base /usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/stl_vector.h:162:37
 #9 0x00000000016e2d2c ~vector /usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/stl_vector.h:435:33
#10 0x00000000016e2d2c VisitCallExpr /__w/clangd/clangd/llvm-project/clang-tools-extra/clangd/InlayHints.cpp:500:3
#11 0x00000000016e2d2c clang::RecursiveASTVisitor<clang::clangd::(anonymous namespace)::InlayHintVisitor>::WalkUpFromCallExpr(clang::CallExpr*) /__w/clangd/clangd/clangd_19.1.2/tools/clang/include/clang/AST/StmtNodes.inc:602:1
#12 0x00000000016dcf39 TraverseCallExpr /__w/clangd/clangd/llvm-project/clang/include/clang/AST/RecursiveASTVisitor.h:2758:1
#13 0x00000000016dcf39 clang::RecursiveASTVisitor<clang::clangd::(anonymous namespace)::InlayHintVisitor>::dataTraverseNode(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*> > > >*) /__w/clangd/clangd/clangd_19.1.2/tools/clang/include/clang/AST/StmtNodes.inc:602:1
#14 0x00000000016d1bef clang::RecursiveASTVisitor<clang::clangd::(anonymous namespace)::InlayHintVisitor>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*> > > >*) /__w/clangd/clangd/llvm-project/clang/include/clang/AST/RecursiveASTVisitor.h:685:7
#15 0x00000000016e80aa clang::RecursiveASTVisitor<clang::clangd::(anonymous namespace)::InlayHintVisitor>::TraverseFunctionHelper(clang::FunctionDecl*) /__w/clangd/clangd/llvm-project/clang/include/clang/AST/RecursiveASTVisitor.h:2256:5
#16 0x00000000016cd610 TraverseFunctionDecl /__w/clangd/clangd/llvm-project/clang/include/clang/AST/RecursiveASTVisitor.h:2267:1
#17 0x00000000016cd610 clang::RecursiveASTVisitor<clang::clangd::(anonymous namespace)::InlayHintVisitor>::TraverseDecl(clang::Decl*) /__w/clangd/clangd/clangd_19.1.2/tools/clang/include/clang/AST/DeclNodes.inc:238:1
#18 0x00000000016cf545 TraverseTranslationUnitDecl /__w/clangd/clangd/llvm-project/clang/include/clang/AST/RecursiveASTVisitor.h:1635:1
#19 0x00000000016cf545 clang::RecursiveASTVisitor<clang::clangd::(anonymous namespace)::InlayHintVisitor>::TraverseDecl(clang::Decl*) /__w/clangd/clangd/clangd_19.1.2/tools/clang/include/clang/AST/DeclNodes.inc:24:1
#20 0x00000000016cad1e __normal_iterator /usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/stl_iterator.h:783:20
#21 0x00000000016cad1e begin /usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/stl_vector.h:564:16
#22 0x00000000016cad1e begin<std::vector<clang::clangd::InlayHint, std::allocator<clang::clangd::InlayHint> > > /usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/range_access.h:49:21
#23 0x00000000016cad1e begin_impl<std::vector<clang::clangd::InlayHint, std::allocator<clang::clangd::InlayHint> > &> /__w/clangd/clangd/llvm-project/llvm/include/llvm/ADT/ADL.h:29:10
#24 0x00000000016cad1e adl_begin<std::vector<clang::clangd::InlayHint, std::allocator<clang::clangd::InlayHint> > &> /__w/clangd/clangd/llvm-project/llvm/include/llvm/ADT/ADL.h:80:10
#25 0x00000000016cad1e sort<std::vector<clang::clangd::InlayHint, std::allocator<clang::clangd::InlayHint> > &> /__w/clangd/clangd/llvm-project/llvm/include/llvm/ADT/STLExtras.h:1661:14
#26 0x00000000016cad1e clang::clangd::inlayHints(clang::clangd::ParsedAST&, std::optional<clang::clangd::Range>) /__w/clangd/clangd/llvm-project/clang-tools-extra/clangd/InlayHints.cpp:1129:3
#27 0x00000000015f573f _Vector_impl /usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/stl_vector.h:99:16
#28 0x00000000015f573f _Vector_base /usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/stl_vector.h:145:9
#29 0x00000000015f573f vector /usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/stl_vector.h:345:9
#30 0x00000000015f573f Expected<std::vector<clang::clangd::InlayHint, std::allocator<clang::clangd::InlayHint> > > /__w/clangd/clangd/llvm-project/llvm/include/llvm/Support/Error.h:531:24
#31 0x00000000015f573f operator() /__w/clangd/clangd/llvm-project/clang-tools-extra/clangd/ClangdServer.cpp:909:8
#32 0x00000000015f573f void llvm::detail::UniqueFunctionBase<void, llvm::Expected<clang::clangd::InputsAndAST> >::CallImpl<clang::clangd::ClangdServer::inlayHints(llvm::StringRef, std::optional<clang::clangd::Range>, llvm::unique_function<void (llvm::Expected<std::vector<clang::clangd::InlayHint, std::allocator<clang::clangd::InlayHint> > >)>)::$_14>(void*, llvm::Expected<clang::clangd::InputsAndAST>&) /__w/clangd/clangd/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:220:12
#33 0x000000000179856c ~Expected /__w/clangd/clangd/llvm-project/llvm/include/llvm/Support/Error.h:563:10
#34 0x000000000179856c operator() /__w/clangd/clangd/llvm-project/clang-tools-extra/clangd/TUScheduler.cpp:1009:5
#35 0x000000000179856c void llvm::detail::UniqueFunctionBase<void>::CallImpl<clang::clangd::(anonymous namespace)::ASTWorker::runWithAST(llvm::StringRef, llvm::unique_function<void (llvm::Expected<clang::clangd::InputsAndAST>)>, clang::clangd::TUScheduler::ASTActionInvalidation)::$_1>(void*) /__w/clangd/clangd/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:220:12
#36 0x000000000178fa0b operator() /__w/clangd/clangd/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:68:12
#37 0x000000000178fa0b clang::clangd::(anonymous namespace)::ASTWorker::runTask(llvm::StringRef, llvm::function_ref<void ()>) /__w/clangd/clangd/llvm-project/clang-tools-extra/clangd/TUScheduler.cpp:1324:3
#38 0x000000000178e460 run /__w/clangd/clangd/llvm-project/clang-tools-extra/clangd/TUScheduler.cpp:1459:5
#39 0x000000000178e460 operator() /__w/clangd/clangd/llvm-project/clang-tools-extra/clangd/TUScheduler.cpp:822:42
#40 0x000000000178e460 void llvm::detail::UniqueFunctionBase<void>::CallImpl<clang::clangd::(anonymous namespace)::ASTWorker::create(llvm::StringRef, clang::clangd::GlobalCompilationDatabase const&, clang::clangd::TUScheduler::ASTCache&, clang::clangd::TUScheduler::HeaderIncluderCache&, clang::clangd::AsyncTaskRunner*, clang::clangd::Semaphore&, clang::clangd::TUScheduler::Options const&, clang::clangd::ParsingCallbacks&)::$_7>(void*) /__w/clangd/clangd/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:220:12
#41 0x000000000190f7c1 operator= /__w/clangd/clangd/llvm-project/llvm/include/llvm/ADT/PointerIntPair.h:48:5
#42 0x000000000190f7c1 PunnedPointer /__w/clangd/clangd/llvm-project/llvm/include/llvm/ADT/PointerIntPair.h:37:60
#43 0x000000000190f7c1 PointerIntPair /__w/clangd/clangd/llvm-project/llvm/include/llvm/ADT/PointerIntPair.h:86:13
#44 0x000000000190f7c1 UniqueFunctionBase /__w/clangd/clangd/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:340:3
#45 0x000000000190f7c1 unique_function /__w/clangd/clangd/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:369:3
#46 0x000000000190f7c1 operator() /__w/clangd/clangd/llvm-project/clang-tools-extra/clangd/support/Threading.cpp:103:14
#47 0x000000000190f7c1 operator()<(lambda at /__w/clangd/clangd/llvm-project/clang-tools-extra/clangd/support/Threading.cpp:98:15) &> /__w/clangd/clangd/llvm-project/llvm/include/llvm/Support/thread.h:43:11
#48 0x000000000190f7c1 __invoke_impl<void, (lambda at /__w/clangd/clangd/llvm-project/llvm/include/llvm/Support/thread.h:42:9), (lambda at /__w/clangd/clangd/llvm-project/clang-tools-extra/clangd/support/Threading.cpp:98:15) &> /usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/invoke.h:60:14
#49 0x000000000190f7c1 __invoke<(lambda at /__w/clangd/clangd/llvm-project/llvm/include/llvm/Support/thread.h:42:9), (lambda at /__w/clangd/clangd/llvm-project/clang-tools-extra/clangd/support/Threading.cpp:98:15) &> /usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/invoke.h:95:14
#50 0x000000000190f7c1 __apply_impl<(lambda at /__w/clangd/clangd/llvm-project/llvm/include/llvm/Support/thread.h:42:9), std::tuple<(lambda at /__w/clangd/clangd/llvm-project/clang-tools-extra/clangd/support/Threading.cpp:98:15)> &, 0> /usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/tuple:1662:14
#51 0x000000000190f7c1 apply<(lambda at /__w/clangd/clangd/llvm-project/llvm/include/llvm/Support/thread.h:42:9), std::tuple<(lambda at /__w/clangd/clangd/llvm-project/clang-tools-extra/clangd/support/Threading.cpp:98:15)> &> /usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/tuple:1671:14
#52 0x000000000190f7c1 GenericThreadProxy<std::tuple<(lambda at /__w/clangd/clangd/llvm-project/clang-tools-extra/clangd/support/Threading.cpp:98:15)> > /__w/clangd/clangd/llvm-project/llvm/include/llvm/Support/thread.h:41:5
#53 0x000000000190f7c1 void* llvm::thread::ThreadProxy<std::tuple<clang::clangd::AsyncTaskRunner::runAsync(llvm::Twine const&, llvm::unique_function<void ()>)::$_1> >(void*) /__w/clangd/clangd/llvm-project/llvm/include/llvm/Support/thread.h:55:5
#54 0x00007efde05f2ac3 start_thread ./nptl/./nptl/pthread_create.c:442:8
#55 0x00007efde0684850 ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:83:0
Signalled during AST worker action: InlayHints

</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsW19z4jgS_zTKi2ooW_7_kAeHhJ1UTd2mAjP7SMmyAF2M7JPkBPZhP_uVZBkMazIJCTB1t1Mz4LEt-dfdv251tzCWks05pdcguAHB7RWu1aIU138-_fnn09NVVuZrfaUo5wO1UiC4BSheKFVJ4KUAjQAazZla1NmAlEuARrWk4gtWCpPFknIlARrNWEH1N3JC1w_9BKBROxtKgJMCJ72HC_xMoVowCSVbVgWFpMwpZBwqKtWAVBVAQ4h5DkmB-TyHRGC5oBKWHFZYSMbnkKkBcNLN_Z6eGAwRuIl2Pp1UrSua0xmcQIBigNJZWWokKP6hv7ybnlsyLPZvybCAWXMInPS5ZLnBau43YkX6EoQQZgDFq804EN0eAgacdLKgjWxQKkyeGikgQJ4DnZWz-RMEkRtksCiel_oWL5Vr2Rw8CMbVWI-dCEwoQPH2JoFfpqVUguIlQKHWKOPaCBCg0XT6AtCo0W73QI_-Uony35Qo-1_9xTKARuO6qkqhT3_nbKVPsDnHhRwwToCXRsgDXup6VgJ3TwJ_ltE-CR5r3szzFfO8oEI2Kv04yBZdww7XCfVnbNGhff3iWQh3cAAUn1RdvmvUZfF4Fk9EZzl1AuwEyGnIaGdbxeE09L8UjNerL3NeNxfIQJaDEKAbZ-WjADkNF_WEfldAN6SBm2HI5A9csPwdEpnzAI0YJ0Wd086ZGywZ0VKVtSD0W0mwYiUfLLRQRjQvtFCCfih3q6pghKnfM_2sByzwkioqPgVcOp4ANLqlpGgAxa6rVd4qJ-xDtMTrjN6KshquVgewyfeC-6LKspBf6EoJ3L33nhd4_ZVx1dLTixwNEFmAUR_ARjjjNHYicwxQjHnJ18uylpDjJZWViQRJc3nzqB9MMlWK5mwlSkKlHOKiACg-bmY9mFIdV7ZunQqB1490BrxhZ9K7VSUgKbmOlynw7t7nVe_TZOQZv2rJF-9pEuWIwL-mPyhRpZhmWFJo1jEB0ChjHKDRYLBxujkh_a4XDYKB096799FhI0A35u_m_oyZNVKqYvpsEDT0DJGhgIWc9EJu7r88WN8LNFgd5nWUd_rAGqppehjDn8rSgaN9pgXi9gHpcPCRklpI9kzT8WTjCsPP8qm75sIfuHj6Xo1EuWyl3_Wu7dn0Jz7QHEzdZOAOEEAjo5Q3xLyxWqp_lTltl5nQQXaZ0UpCu0rKycxL4ETgZyokPdZgr6DpUbohEYqCuAPL64N1btvlWOFWFVqDu5bTejVW60a78RIXRRNK7pdVAbzh9tpDybii4p6rB8z24HYmc2v9mZVlsTu1Hf6NPdHJuqITgbU39s6i42nPUPvkez4rf_L0I58KO_8uRei9NCd3Mzo7O3Na1jSq-Yc1n8iaT4o3YawXrciSZj8hjR2ML0aaUc2Jzpy_0qKie8tFe00nsmfTFUKBLpUCq6y9XJnkoevAffAa4FmghVHH-aM-aJeyY2OjrvXeZrVj46KevRsXkdddUffSXjIL_GBjtYnAXBamXvvOmTqT8dzQZI4twqQP4f-t8fytZtBeSk1w7lI4nfJSLHExZYoKfLlKoH28MWkU61oLORa42wc8o3PGL1-2BKHfloUaKjoIFXhDqSytmvGHabfhlV4PN6NwUZQEv3Fgd0E8u44E5nM6xYRQKZviTjsMaonoHVTSlDWJyyU0hUKrrPc15bbqsCfS24n5_NYsLYlpElrJ_T7JcV5ML0mR0wgeO13Bgz7BZSnU_4TM48m3u5USWNoFKXT1l29l3890jOwHkLJNM-Jw--wBC0lzE_DDHU2UlV56cXFYEY_aMU_cKHNdw3nbP0G7yVQwCyJvBts-mXb3y8fwJOmG8Pg1wL9IY8_XGU9iASd9gH-Vtp7Xhbq7_dRCvVtVlCiaX3SF_GAc2G7K3AnRpgae26Rgjexun-xl1aQ9796cetUnh-ZgTMUzFdYrE0eTPLZYUC9lSpZ3qu-cKsyK5vg7Z_-pN1XZDZYUeEN9_27B3rHkQfVXtZIpN-HLFuubDqbtWhwY2hWqJ1h2-iBKMD5_pLOjg2NXptqIPp1Z2a3ccOeJF2ewqUjuNnUJQP7U9c2ZuLFS-kFDmaXmiC3LAwtmy6TOqomQSRiQZehujhglcRAS-FeL-1QeG3qdpGVvr9NiOI3HTr6PyYLmdbFxWNcxHmvbJXubnRbLUR77do_7SfWbjid_lOKp9UZR8z-YWpi85JA3Hu1Wb2VpYv33wP0dNW9kSA2Ae_6MC5ab5sWuH-250TmdYDdzjOIZdrLjCfjTHLYFhIsOpDDuIor6EH0WfSZYPr2FOy1ppsJsCLfE2QTBEzqlZzoqNrfd2wSOYuqHDhQ1PyEAP-hGhaQPwLkiVIxQ-9sCgDzf6cPyS0UoIihW9DDDDjzkt6LMcDEslxVrmpu3WGFTCNifHoTvjDhDTBb0ncO-UpxTcd_4rnjDDKlcc6I96rHmnAqbAhy4eUyXuFqU4r2ofjdJlXyLIh6a39dpm2aYPMkmo9jG2ehycdbfTc0TZxYRd-tG3u2nQdndDGtaY_HWn33UB-RBGzC3Q08JxYvMPqjF4vVi2Rl1SjBx2P7qT4Px-8D8PYKckjOe3_lZiB_0AdpLak6KJuw0WfzwVQJ_6jogN3nzZCEozhmfbzJWr9P28qOfYwLeUEdjvMxyDLE6PcTEJDNBo45PagFuCwllnmZ_zWQ6YVYVcZ8qplPGn8sn2va823L6SI28Dx4yTRmUfOCBn2mCM_eoGsU36a3T5WzymqGOZ-s_tjnKNknQsU3g9NsGV1Wxbn3o7PbZNG5UXRUfYMiHDdbuaqAhdM5sOCt66obm96Ybg_VmVcZc_1jq7N61NVLU3ZwKejPO3yingpFGhgdRrtbdzuYvocATLt3uNiEPepNgW6N06tpmuC2SXtfaG8u1tidizu-UrJMXxndLz7d01fo6xJvm8edWXb1aDYKOVv3dt1JmCBMPSoWFmjZDoKYzr1Shqb09rJqr06aQH5jXXYyT232NINiZOIz9OHDMXEsmSesmci1zWum1pm5eoJFr-Ww8j9erjdcZwUtOvcFYP0Dnc7oyal62KWgO81owPofpeAJfTJMBYqv0FG43RYGTXuXXXp54Cb6i127kJ67vemFytbimQRbkDsaJkyAvj0hIIuJllPgkzmnk-VfsGjkocEIncEMvdOJB4OSRnyXhLHRnNAxnwHfoErNioFU_KMX8iklZ02vX9xwnvCpwRgtpXslDiNMXaK4ChEBweyWujT2zei6B7xRMKrmdRjFV0OvG8vZNshemFn97t-6qFsX1Ky_ytW8u7TLHwNAGsDifr9F_AwAA__8GWA-I">