diff options
author | Anatoly Trosinenko <atrosinenko@accesssoftek.com> | 2025-08-07 11:27:15 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-08-07 11:27:15 +0300 |
commit | 4da745a0f4fad9026dd4a84d4a9f169166575b80 (patch) | |
tree | 6f11466af21dd7900e251076dd356d31552632df /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | 6ce68d3a12fb70a8a1247823e2c90a5a1dd4531d (diff) | |
download | llvm-4da745a0f4fad9026dd4a84d4a9f169166575b80.zip llvm-4da745a0f4fad9026dd4a84d4a9f169166575b80.tar.gz llvm-4da745a0f4fad9026dd4a84d4a9f169166575b80.tar.bz2 |
[BOLT] Fix unit test failures with LLVM_LINK_LLVM_DYLIB=ON (#152190)
When LLVM_LINK_LLVM_DYLIB is ON, `check-bolt` target reports unit test
failures:
BOLT-Unit :: Core/./CoreTests/failed_to_discover_tests_from_gtest
BOLT-Unit :: Profile/./ProfileTests/failed_to_discover_tests_from_gtest
The reason is that when llvm-lit runs a unit-test executable:
/path/to/CoreTests --gtest_list_tests '--gtest_filter=-*DISABLED_*'
an assertion is triggered with the following message:
LLVM ERROR: Option 'default' already exists!
This assertion triggers when the initializer of defaultListDAGScheduler
defined at SelectionDAGISel.cpp:219 is called as a statically-linked
function after already being called during the initialization of
libLLVM.
The issue can be traced down to LLVMTestingSupport library which depends
on libLLVM as neither COMPONENT_LIB nor DISABLE_LLVM_LINK_LLVM_DYLIB is
specified in a call to `add_llvm_library(LLVMTestingSupport ...)`.
Specifying DISABLE_LLVM_LINK_LLVM_DYLIB for LLVMTestingSupport makes
Clang unit test fail and COMPONENT_LIB is probably inappropriate for a
testing-specific library, thus as a workaround, added Error.cpp source
from LLVMTestingSupport directly to the list of source files of
CoreTests target (as it depends on
`llvm::detail::TakeError(llvm::Error)`) and removed LLVMTestingSupport
from the list of dependencies of ProfileTests.
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions