[clang] [clang][DependencyScanning] Remove dependency on clangDriver from clangDependencyScanning (PR #172347)
Andrew Haberlandt via cfe-commits
cfe-commits at lists.llvm.org
Tue Jan 6 13:21:51 PST 2026
ndrewh wrote:
I think this change might be responsible for the failures here: https://lab.llvm.org/buildbot/#/builders/25/builds/14594
I think they are hitting a UBSan check:
```
#8 0x000061b8007105ee __sanitizer::Die() /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_termination.cpp:52:5
#9 0x000061b80071a789 (/home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/tools/extra/clangd/unittests/./ClangdTests+0x3674789)
#10 0x000061b8049e2956 operator* /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/libcxx_install_ubsan/include/c++/v1/__memory/unique_ptr.h:263:5
#11 0x000061b8049e2956 clang::dependencies::DiagnosticsEngineWithDiagOpts::DiagnosticsEngineWithDiagOpts(llvm::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, clang::DiagnosticConsumer&) /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm-project/clang/lib/DependencyScanning/DependencyScannerImpl.cpp:378:57
#12 0x000061b8049e0434 release /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:232:9
#13 0x000061b8049e0434 ~IntrusiveRefCntPtr /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:196:27
#14 0x000061b8049e0434 operator()<llvm::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm-project/clang/lib/DependencyScanning/DependencyScanningWorker.cpp:99:9
#15 0x000061b8049e0434 __invoke<(lambda at /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm-project/clang/lib/DependencyScanning/DependencyScanningWorker.cpp:90:51) &, const llvm::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > &> /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/libcxx_install_ubsan/include/c++/v1/__type_traits/invoke.h:90:27
#16 0x000061b8049e0434 operator() /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/libcxx_install_ubsan/include/c++/v1/__algorithm/all_of.h:33:65
#17 0x000061b8049e0434 __invoke<(lambda at /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/libcxx_install_ubsan/include/c++/v1/__algorithm/all_of.h:33:25) &, const llvm::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > &> /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/libcxx_install_ubsan/include/c++/v1/__type_traits/invoke.h:90:27
#18 0x000061b8049e0434 __any_of<const llvm::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > *, const llvm::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > *, std::__1::__identity, (lambda at /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/libcxx_install_ubsan/include/c++/v1/__algorithm/all_of.h:33:25)> /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/libcxx_install_ubsan/include/c++/v1/__algorithm/any_of.h:27:9
#19 0x000061b8049e0434 __all_of<const llvm::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > *, const llvm::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > *, std::__1::__identity, (lambda at /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm-project/clang/lib/DependencyScanning/DependencyScanningWorker.cpp:90:51)> /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/libcxx_install_ubsan/include/c++/v1/__algorithm/all_of.h:34:11
#20 0x000061b8049e0434 all_of<const llvm::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > *, (lambda at /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm-project/clang/lib/DependencyScanning/DependencyScanningWorker.cpp:90:51)> /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/libcxx_install_ubsan/include/c++/v1/__algorithm/all_of.h:41:10
#21 0x000061b8049e0434 all_of<llvm::ArrayRef<llvm::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > &, (lambda at /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm-project/clang/lib/DependencyScanning/DependencyScanningWorker.cpp:90:51)> /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/ADT/STLExtras.h:1738:10
#22 0x000061b8049e0434 clang::dependencies::DependencyScanningWorker::computeDependencies(llvm::StringRef, llvm::ArrayRef<llvm::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>, clang::dependencies::DependencyConsumer&, clang::dependencies::DependencyActionController&, clang::DiagnosticConsumer&, llvm::IntrusiveRefCntPtr<llvm::vfs::OverlayFileSystem>) /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm-project/clang/lib/DependencyScanning/DependencyScanningWorker.cpp:90:24
#23 0x000061b8037f6ff4 computeDependenciesForDriverCommandLine /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm-project/clang/lib/Tooling/DependencyScanningTool.cpp:166:17
#24 0x000061b8037f6ff4 clang::tooling::computeDependencies(clang::dependencies::DependencyScanningWorker&, llvm::StringRef, llvm::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, clang::dependencies::DependencyConsumer&, clang::dependencies::DependencyActionController&, clang::DiagnosticConsumer&, llvm::IntrusiveRefCntPtr<llvm::vfs::OverlayFileSystem>) /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm-project/clang/lib/Tooling/DependencyScanningTool.cpp:186:23
#25 0x000061b8037f7663 clang::tooling::DependencyScanningTool::getP1689ModuleDependencyFile(clang::tooling::CompileCommand const&, llvm::StringRef, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, clang::DiagnosticConsumer&) /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm-project/clang/lib/Tooling/DependencyScanningTool.cpp:249:8
#26 0x000061b8037f53ae clang::tooling::DependencyScanningTool::getP1689ModuleDependencyFile(clang::tooling::CompileCommand const&, llvm::StringRef, clang::DiagnosticConsumer&) /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/Tooling/DependencyScanningTool.h:76:12
#27 0x000061b8037f4c45 has_value /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/libcxx_install_ubsan/include/c++/v1/optional:447:96
#28 0x000061b8037f4c45 operator bool /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/libcxx_install_ubsan/include/c++/v1/optional:1083:84
#29 0x000061b8037f4c45 clang::clangd::(anonymous namespace)::ModuleDependencyScanner::scan(llvm::StringRef, llvm::unique_function<void (clang::tooling::CompileCommand&, llvm::StringRef) const> const&) /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm-project/clang-tools-extra/clangd/ScanningProjectModules.cpp:123:8
#30 0x000061b8037f419b has_value /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/libcxx_install_ubsan/include/c++/v1/optional:447:96
#31 0x000061b8037f419b operator bool /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/libcxx_install_ubsan/include/c++/v1/optional:1083:84
#32 0x000061b8037f419b getRequiredModules /home/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm-project/clang-tools-extra/clangd/ScanningProjectModules.cpp:177:8
```
https://github.com/llvm/llvm-project/pull/172347
More information about the cfe-commits
mailing list