Issue 143006
Summary clangd crash with this simple code
Labels new issue
Assignees
Reporter zkzzkk
    [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

_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to