Skip to content

Instantly share code, notes, and snippets.

@bstaletic
Created August 22, 2023 21:16
Show Gist options
  • Save bstaletic/c665cf4d89321e85d9689433ca8ae97d to your computer and use it in GitHub Desktop.
Save bstaletic/c665cf4d89321e85d9689433ca8ae97d to your computer and use it in GitHub Desktop.
clangd NULL deref
clangd: /home/bstaletic/work/llvm-project-16.0.6.src/llvm/include/llvm/Support/Casting.h:663: decltype(auto) llvm::dyn_cast(From*) [with To = clang::TranslationUnitDecl; From = clang::Decl]: Assertion `detail::isPresent(Val) && "dyn_cast on a non-existent value"' failed.
#0 0x0000558e24f956e0 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/bstaletic/work/llvm-project-16.0.6.src/llvm/lib/Support/Unix/Signals.inc:567:22
#1 0x0000558e24f95aa8 PrintStackTraceSignalHandler(void*) /home/bstaletic/work/llvm-project-16.0.6.src/llvm/lib/Support/Unix/Signals.inc:641:1
#2 0x0000558e24f93297 llvm::sys::RunSignalHandlers() /home/bstaletic/work/llvm-project-16.0.6.src/llvm/lib/Support/Signals.cpp:104:20
#3 0x0000558e24f95045 SignalHandler(int) /home/bstaletic/work/llvm-project-16.0.6.src/llvm/lib/Support/Unix/Signals.inc:412:1
#4 0x00007fb900964d20 (/lib64/libc.so.6+0x38d20)
#5 0x00007fb9009b241c __pthread_kill_implementation /var/tmp/portage/sys-libs/glibc-2.37-r4/work/glibc-2.37/nptl/pthread_kill.c:44:76
#6 0x00007fb900964c82 raise /var/tmp/portage/sys-libs/glibc-2.37-r4/work/glibc-2.37/signal/../sysdeps/posix/raise.c:27:6
#7 0x00007fb90094e4ad abort /var/tmp/portage/sys-libs/glibc-2.37-r4/work/glibc-2.37/stdlib/abort.c:81:7
#8 0x00007fb90094e3d5 _nl_load_domain /var/tmp/portage/sys-libs/glibc-2.37-r4/work/glibc-2.37/intl/loadmsgcat.c:1177:9
#9 0x00007fb90095dad2 (/lib64/libc.so.6+0x31ad2)
#10 0x0000558e251a636f decltype(auto) llvm::dyn_cast<clang::TranslationUnitDecl, clang::Decl>(clang::Decl*) /home/bstaletic/work/llvm-project-16.0.6.src/llvm/include/llvm/Support/Casting.h:664:48
#11 0x0000558e2519e2ee clang::Decl::getTranslationUnitDecl() /home/bstaletic/work/llvm-project-16.0.6.src/clang/lib/AST/DeclBase.cpp:414:48
#12 0x0000558e251a41fe clang::Decl::getTranslationUnitDecl() const /home/bstaletic/work/llvm-project-16.0.6.src/clang/include/clang/AST/DeclBase.h:471:3
#13 0x0000558e2519e3ba clang::Decl::getASTContext() const /home/bstaletic/work/llvm-project-16.0.6.src/clang/lib/AST/DeclBase.cpp:429:49
#14 0x0000558e273b7725 std::optional<clang::clangd::TypeHierarchyItem> clang::clangd::declToHierarchyItem<clang::clangd::TypeHierarchyItem>(clang::NamedDecl const&, llvm::StringRef) /home/bstaletic/work/llvm-project-16.0.6.src/clang-tools-extra/clangd/XRefs.cpp:1611:37
#15 0x0000558e273b2423 clang::clangd::declToTypeHierarchyItem(clang::NamedDecl const&, llvm::StringRef) /home/bstaletic/work/llvm-project-16.0.6.src/clang-tools-extra/clangd/XRefs.cpp:1654:7
#16 0x0000558e273b42c9 clang::clangd::getTypeHierarchy(clang::clangd::ParsedAST&, clang::clangd::Position, int, clang::clangd::TypeHierarchyDirection, clang::clangd::SymbolIndex const*, llvm::StringRef) /home/bstaletic/work/llvm-project-16.0.6.src/clang-tools-extra/clangd/XRefs.cpp:2091:10
#17 0x0000558e26efe8bf clang::clangd::ClangdServer::typeHierarchy(llvm::StringRef, clang::clangd::Position, int, clang::clangd::TypeHierarchyDirection, llvm::unique_function<void (llvm::Expected<std::vector<clang::clangd::TypeHierarchyItem, std::allocator<clang::clangd::TypeHierarchyItem>>>)>)::'lambda'(llvm::Expected<clang::clangd::InputsAndAST>)::operator()(llvm::Expected<clang::clangd::InputsAndAST>) /home/bstaletic/work/llvm-project-16.0.6.src/clang-tools-extra/clangd/ClangdServer.cpp:770:32
#18 0x0000558e26f08581 void llvm::detail::UniqueFunctionBase<void, llvm::Expected<clang::clangd::InputsAndAST>>::CallImpl<clang::clangd::ClangdServer::typeHierarchy(llvm::StringRef, clang::clangd::Position, int, clang::clangd::TypeHierarchyDirection, llvm::unique_function<void (llvm::Expected<std::vector<clang::clangd::TypeHierarchyItem, std::allocator<clang::clangd::TypeHierarchyItem>>>)>)::'lambda'(llvm::Expected<clang::clangd::InputsAndAST>)>(void*, llvm::Expected<clang::clangd::InputsAndAST>&) /home/bstaletic/work/llvm-project-16.0.6.src/llvm/include/llvm/ADT/FunctionExtras.h:221:16
#19 0x0000558e27399e2d llvm::unique_function<void (llvm::Expected<clang::clangd::InputsAndAST>)>::operator()(llvm::Expected<clang::clangd::InputsAndAST>) /home/bstaletic/work/llvm-project-16.0.6.src/llvm/include/llvm/ADT/FunctionExtras.h:383:62
#20 0x0000558e273882f9 clang::clangd::(anonymous namespace)::ASTWorker::runWithAST(llvm::StringRef, llvm::unique_function<void (llvm::Expected<clang::clangd::InputsAndAST>)>, clang::clangd::TUScheduler::ASTActionInvalidation)::'lambda'()::operator()() /home/bstaletic/work/llvm-project-16.0.6.src/clang-tools-extra/clangd/TUScheduler.cpp:996:11
#21 0x0000558e27394689 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)::'lambda'()>(void*) /home/bstaletic/work/llvm-project-16.0.6.src/llvm/include/llvm/ADT/FunctionExtras.h:221:49
#22 0x0000558e26f45ce9 llvm::unique_function<void ()>::operator()() /home/bstaletic/work/llvm-project-16.0.6.src/llvm/include/llvm/ADT/FunctionExtras.h:383:62
#23 0x0000558e2739d944 void llvm::function_ref<void ()>::callback_fn<llvm::unique_function<void ()>>(long) /home/bstaletic/work/llvm-project-16.0.6.src/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:40
#24 0x0000558e24eda8fc llvm::function_ref<void ()>::operator()() const /home/bstaletic/work/llvm-project-16.0.6.src/llvm/include/llvm/ADT/STLFunctionalExtras.h:68:62
#25 0x0000558e2738a9b9 clang::clangd::(anonymous namespace)::ASTWorker::runTask(llvm::StringRef, llvm::function_ref<void ()>) /home/bstaletic/work/llvm-project-16.0.6.src/clang-tools-extra/clangd/TUScheduler.cpp:1305:1
#26 0x0000558e2738bf2e clang::clangd::(anonymous namespace)::ASTWorker::run() /home/bstaletic/work/llvm-project-16.0.6.src/clang-tools-extra/clangd/TUScheduler.cpp:1438:5
#27 0x0000558e273865c2 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&)::'lambda'()::operator()() const /home/bstaletic/work/llvm-project-16.0.6.src/clang-tools-extra/clangd/TUScheduler.cpp:820:49
#28 0x0000558e27394159 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&)::'lambda'()>(void*) /home/bstaletic/work/llvm-project-16.0.6.src/llvm/include/llvm/ADT/FunctionExtras.h:221:49
#29 0x0000558e26f45ce9 llvm::unique_function<void ()>::operator()() /home/bstaletic/work/llvm-project-16.0.6.src/llvm/include/llvm/ADT/FunctionExtras.h:383:62
#30 0x0000558e2774fae4 clang::clangd::AsyncTaskRunner::runAsync(llvm::Twine const&, llvm::unique_function<void ()>)::'lambda0'()::operator()() /home/bstaletic/work/llvm-project-16.0.6.src/clang-tools-extra/clangd/support/Threading.cpp:103:14
#31 0x0000558e277505d2 auto void llvm::thread::GenericThreadProxy<std::tuple<clang::clangd::AsyncTaskRunner::runAsync(llvm::Twine const&, llvm::unique_function<void ()>)::'lambda0'()>>(void*)::'lambda'(auto&&, auto&&...)::operator()<clang::clangd::AsyncTaskRunner::runAsync(llvm::Twine const&, llvm::unique_function<void ()>)::'lambda0'()&>(auto&&, auto&&...) const /home/bstaletic/work/llvm-project-16.0.6.src/llvm/include/llvm/Support/thread.h:42:9
#32 0x0000558e27750984 auto std::__invoke_impl<void, void llvm::thread::GenericThreadProxy<std::tuple<clang::clangd::AsyncTaskRunner::runAsync(llvm::Twine const&, llvm::unique_function<void ()>)::'lambda0'()>>(void*)::'lambda'(auto&&, auto&&...), clang::clangd::AsyncTaskRunner::runAsync(llvm::Twine const&, llvm::unique_function<void ()>)::'lambda0'()&>(std::__invoke_other, void llvm::thread::GenericThreadProxy<std::tuple<clang::clangd::AsyncTaskRunner::runAsync(llvm::Twine const&, llvm::unique_function<void ()>)::'lambda0'()>>(void*)::'lambda'(auto&&, auto&&...)&&, clang::clangd::AsyncTaskRunner::runAsync(llvm::Twine const&, llvm::unique_function<void ()>)::'lambda0'()&) /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/invoke.h:61:67
#33 0x0000558e277508b7 std::__invoke_result<auto, auto...>::type std::__invoke<void llvm::thread::GenericThreadProxy<std::tuple<clang::clangd::AsyncTaskRunner::runAsync(llvm::Twine const&, llvm::unique_function<void ()>)::'lambda0'()>>(void*)::'lambda'(auto&&, auto&&...), clang::clangd::AsyncTaskRunner::runAsync(llvm::Twine const&, llvm::unique_function<void ()>)::'lambda0'()&>(auto&&, auto&&...) /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/invoke.h:97:36
#34 0x0000558e27750614 decltype(auto) std::__apply_impl<void llvm::thread::GenericThreadProxy<std::tuple<clang::clangd::AsyncTaskRunner::runAsync(llvm::Twine const&, llvm::unique_function<void ()>)::'lambda0'()>>(void*)::'lambda'(auto&&, auto&&...), std::tuple<clang::clangd::AsyncTaskRunner::runAsync(llvm::Twine const&, llvm::unique_function<void ()>)::'lambda0'()>&, 0ul>(auto&&, std::tuple<clang::clangd::AsyncTaskRunner::runAsync(llvm::Twine const&, llvm::unique_function<void ()>)::'lambda0'()>&, std::integer_sequence<unsigned long, 0ul>) /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/tuple:2289:51
#35 0x0000558e27750652 decltype(auto) std::apply<void llvm::thread::GenericThreadProxy<std::tuple<clang::clangd::AsyncTaskRunner::runAsync(llvm::Twine const&, llvm::unique_function<void ()>)::'lambda0'()>>(void*)::'lambda'(auto&&, auto&&...), std::tuple<clang::clangd::AsyncTaskRunner::runAsync(llvm::Twine const&, llvm::unique_function<void ()>)::'lambda0'()>&>(auto&&, std::tuple<clang::clangd::AsyncTaskRunner::runAsync(llvm::Twine const&, llvm::unique_function<void ()>)::'lambda0'()>&) /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/tuple:2301:21
#36 0x0000558e277506a5 void llvm::thread::GenericThreadProxy<std::tuple<clang::clangd::AsyncTaskRunner::runAsync(llvm::Twine const&, llvm::unique_function<void ()>)::'lambda0'()>>(void*) /home/bstaletic/work/llvm-project-16.0.6.src/llvm/include/llvm/Support/thread.h:46:3
#37 0x0000558e2775046e void* llvm::thread::ThreadProxy<std::tuple<clang::clangd::AsyncTaskRunner::runAsync(llvm::Twine const&, llvm::unique_function<void ()>)::'lambda0'()>>(void*) /home/bstaletic/work/llvm-project-16.0.6.src/llvm/include/llvm/Support/thread.h:56:12
#38 0x00007fb9009b073c start_thread /var/tmp/portage/sys-libs/glibc-2.37-r4/work/glibc-2.37/nptl/pthread_create.c:444:8
#39 0x00007fb900a30cec clone3 /var/tmp/portage/sys-libs/glibc-2.37-r4/work/glibc-2.37/misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:83:0
Signalled during AST worker action: TypeHierarchy
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment