Issue 203582
Summary [clangd] Assertion `llvm::sys::path::is_absolute(Path)' failed.` when dictionary and file use relative path
Labels new issue
Assignees
Reporter hongtaihu
    This input is generated by a fuzzer.

```json
[
    {
      "directory": ".",
      "command": "clang++ t1.cpp",
      "file": "t1.cpp"
    }
  ]
```

The file's content is not important.

When both pathes are relative, it crahes. Otherwise, it doesnt't crash.

stacktrace
```
 #0 0x00005bae371af5e2 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) <REPO_ROOT>/tmp/llvm-project-main-20260608-latest/llvm/lib/Support/Unix/Signals.inc:885:3
 #1 0x00005bae371ac35c llvm::sys::RunSignalHandlers() <REPO_ROOT>/tmp/llvm-project-main-20260608-latest/llvm/lib/Support/Signals.cpp:108:20
 #2 0x00005bae371acbd1 SignalHandler(int, siginfo_t*, void*) <REPO_ROOT>/tmp/llvm-project-main-20260608-latest/llvm/lib/Support/Unix/Signals.inc:448:14
 #3 0x00007eff0ba45330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
 #4 0x00007eff0ba9eb2c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #5 0x00007eff0ba9eb2c __pthread_kill_internal ./nptl/pthread_kill.c:78:10
 #6 0x00007eff0ba9eb2c pthread_kill ./nptl/pthread_kill.c:89:10
 #7 0x00007eff0ba4527e raise ./signal/../sysdeps/posix/raise.c:27:6
 #8 0x00007eff0ba288ff abort ./stdlib/abort.c:81:7
 #9 0x00007eff0ba2881b _nl_load_domain ./intl/loadmsgcat.c:1177:9
#10 0x00007eff0ba3b517 (/lib/x86_64-linux-gnu/libc.so.6+0x3b517)
#11 0x00005bae38a847d6 clang::clangd::absoluteParent(llvm::StringRef) <REPO_ROOT>/tmp/llvm-project-main-20260608-latest/clang-tools-extra/clangd/support/Path.cpp:34:1
#12 0x00005bae3875c585 clang::clangd::(anonymous namespace)::actOnAllParentDirectories(llvm::StringRef, llvm::function_ref<bool (llvm::StringRef)>) <REPO_ROOT>/tmp/llvm-project-main-20260608-latest/clang-tools-extra/clangd/GlobalCompilationDatabase.cpp:49:60
#13 0x00005bae3876307b memcpy /usr/include/x86_64-linux-gnu/bits/string_fortified.h:29:33
#14 0x00005bae3876307b llvm::detail::PunnedPointer<clang::clangd::DirectoryBasedGlobalCompilationDatabase::BroadcastThread::Filter::DirInfo*>::asInt() const <REPO_ROOT>/tmp/llvm-project-main-20260608-latest/llvm/include/llvm/ADT/PointerIntPair.h:41:16
#15 0x00005bae3876307b llvm::detail::PunnedPointer<clang::clangd::DirectoryBasedGlobalCompilationDatabase::BroadcastThread::Filter::DirInfo*>::operator long() const <REPO_ROOT>/tmp/llvm-project-main-20260608-latest/llvm/include/llvm/ADT/PointerIntPair.h:45:53
#16 0x00005bae3876307b llvm::PointerIntPair<clang::clangd::DirectoryBasedGlobalCompilationDatabase::BroadcastThread::Filter::DirInfo*, 1u, unsigned int, llvm::PointerLikeTypeTraits<clang::clangd::DirectoryBasedGlobalCompilationDatabase::BroadcastThread::Filter::DirInfo*>, llvm::PointerIntPairInfo<clang::clangd::DirectoryBasedGlobalCompilationDatabase::BroadcastThread::Filter::DirInfo*, 1u, llvm::PointerLikeTypeTraits<clang::clangd::DirectoryBasedGlobalCompilationDatabase::BroadcastThread::Filter::DirInfo*>>>::setPointer(clang::clangd::DirectoryBasedGlobalCompilationDatabase::BroadcastThread::Filter::DirInfo*) & <REPO_ROOT>/tmp/llvm-project-main-20260608-latest/llvm/include/llvm/ADT/PointerIntPair.h:99:11
#17 0x00005bae3876307b clang::clangd::DirectoryBasedGlobalCompilationDatabase::BroadcastThread::Filter::filter(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>, std::atomic<bool>&) <REPO_ROOT>/tmp/llvm-project-main-20260608-latest/clang-tools-extra/clangd/GlobalCompilationDatabase.cpp:710:34
#18 0x00005bae3876367b std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>::~vector() /usr/include/c++/13/bits/stl_vector.h:735:15
#19 0x00005bae3876367b clang::clangd::DirectoryBasedGlobalCompilationDatabase::BroadcastThread::process(clang::clangd::DirectoryBasedGlobalCompilationDatabase::CDBLookupResult const&) <REPO_ROOT>/tmp/llvm-project-main-20260608-latest/clang-tools-extra/clangd/GlobalCompilationDatabase.cpp:734:64
#20 0x00005bae38763ae6 std::__shared_ptr<clang::clangd::Context::Data const, (__gnu_cxx::_Lock_policy)2>::__shared_ptr(std::__shared_ptr<clang::clangd::Context::Data const, (__gnu_cxx::_Lock_policy)2>&&) /usr/include/c++/13/bits/shared_ptr_base.h:1532:9
#21 0x00005bae38763ae6 std::shared_ptr<clang::clangd::Context::Data const>::shared_ptr(std::shared_ptr<clang::clangd::Context::Data const>&&) /usr/include/c++/13/bits/shared_ptr.h:360:41
#22 0x00005bae38763ae6 clang::clangd::Context::Context(clang::clangd::Context&&) <REPO_ROOT>/tmp/llvm-project-main-20260608-latest/clang-tools-extra/clangd/support/Context.h:92:3
#23 0x00005bae38763ae6 clang::clangd::WithContext::~WithContext() <REPO_ROOT>/tmp/llvm-project-main-20260608-latest/clang-tools-extra/clangd/support/Context.h:188:40
#24 0x00005bae38763ae6 clang::clangd::DirectoryBasedGlobalCompilationDatabase::BroadcastThread::run() <REPO_ROOT>/tmp/llvm-project-main-20260608-latest/clang-tools-extra/clangd/GlobalCompilationDatabase.cpp:525:7
#25 0x00007eff0beecdb4 (/lib/x86_64-linux-gnu/libstdc++.so.6+0xecdb4)
#26 0x00007eff0ba9caa4 start_thread ./nptl/pthread_create.c:447:8
#27 0x00007eff0bb29c6c clone3 ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:80:0
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to