Skip to content

crash on hover #2381

@kadircet

Description

@kadircet
struct A { enum { B = ~0UL }; }; auto a = A::B;

hover on a crashes with assertion:

clangd: /usr/local/google/home/kadircet/repos/llvm/llvm/include/llvm/ADT/APSInt.h:99: int64_t llvm::APSInt::getExtValue() const: Assertion `isRepresentableByInt64() && "Too many bits for int64_t"' failed. PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace. Stack dump: 0. Program arguments: /usr/local/google/home/kadircet/repos/llvm/build/bin/clangd --check=foo2.cc -log=verbose #0 0x00005613072e99b8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /usr/local/google/home/kadircet/repos/llvm/llvm/lib/Support/Unix/Signals.inc:804:13 #1 0x00005613072e75de llvm::sys::RunSignalHandlers() /usr/local/google/home/kadircet/repos/llvm/llvm/lib/Support/Signals.cpp:106:18 #2 0x00005613072ea1b1 SignalHandler(int, siginfo_t*, void*) /usr/local/google/home/kadircet/repos/llvm/llvm/lib/Support/Unix/Signals.inc:0:3 #3 0x00007f928fd9bdf0 (/lib/x86_64-linux-gnu/libc.so.6+0x3fdf0) #4 0x00007f928fdf095c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76 #5 0x00007f928fd9bcc2 raise ./signal/../sysdeps/posix/raise.c:27:6 #6 0x00007f928fd844ac abort ./stdlib/abort.c:81:3 #7 0x00007f928fd84420 __assert_perror_fail ./assert/assert-perr.c:31:1 #8 0x0000561307363d39 getZExtValue /usr/local/google/home/kadircet/repos/llvm/llvm/include/llvm/ADT/APInt.h:1523:5 #9 0x0000561307363d39 llvm::APSInt::getExtValue() const /usr/local/google/home/kadircet/repos/llvm/llvm/include/llvm/ADT/APSInt.h:100:42 #10 0x00005613085b1b83 clang::clangd::(anonymous namespace)::printExprValue(clang::Expr const*, clang::ASTContext const&) /usr/local/google/home/kadircet/repos/llvm/clang-tools-extra/clangd/Hover.cpp:0:41 #11 0x00005613085a743c __assign_from<std::__1::__optional_move_assign_base<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, false> > /usr/local/google/home/kadircet/new_toolchain/bin/../include/c++/v1/optional:382:15 #12 0x00005613085a743c operator= /usr/local/google/home/kadircet/new_toolchain/bin/../include/c++/v1/optional:552:11 #13 0x00005613085a743c operator= /usr/local/google/home/kadircet/new_toolchain/bin/../include/c++/v1/optional:729:80 #14 0x00005613085a743c getHoverContents /usr/local/google/home/kadircet/repos/llvm/clang-tools-extra/clangd/Hover.cpp:667:16 #15 0x00005613085a743c clang::clangd::getHover(clang::clangd::ParsedAST&, clang::clangd::Position, clang::format::FormatStyle const&, clang::clangd::SymbolIndex const*) /usr/local/google/home/kadircet/repos/llvm/clang-tools-extra/clangd/Hover.cpp:1367:14 #16 0x000056130840679c has_value /usr/local/google/home/kadircet/new_toolchain/bin/../include/c++/v1/optional:360:82 #17 0x000056130840679c testLocationFeatures /usr/local/google/home/kadircet/repos/llvm/clang-tools-extra/clangd/tool/Check.cpp:445:36 #18 0x000056130840679c clang::clangd::check(llvm::StringRef, clang::clangd::ThreadsafeFS const&, clang::clangd::ClangdLSPServer::Options const&) /usr/local/google/home/kadircet/repos/llvm/clang-tools-extra/clangd/tool/Check.cpp:527:7 #19 0x00005613083f2a23 clang::clangd::clangdMain(int, char**) /usr/local/google/home/kadircet/repos/llvm/clang-tools-extra/clangd/tool/ClangdMain.cpp:1022:12 #20 0x00007f928fd85ca8 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3 #21 0x00007f928fd85d65 call_init ./csu/../csu/libc-start.c:128:20 #22 0x00007f928fd85d65 __libc_start_main ./csu/../csu/libc-start.c:347:5 #23 0x0000561307192e21 _start (/usr/local/google/home/kadircet/repos/llvm/build/bin/clangd+0x12bce21) Aborted (core dumped) 

clangd version 21.0.0git (git@github.com:llvm/llvm-project.git ab4c939579fe6ca85d9a1022511635c4e6f83f55)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions