| Issue |
186598
|
| Summary |
[Clang] [SPIRV] `clang/include/clang/Driver/InputInfo.h:84: const char* clang::driver::InputInfo::getFilename() const: Assertion `isFilename() && "Invalid accessor."' failed.` failure when building openmp for `spirv64-intel` with `-Wl,-O1`
|
| Labels |
clang
|
| Assignees |
|
| Reporter |
mgorny
|
I'm trying to build the OpenMP offloading runtime for `spirv64-intel` target. I've noticed that when linker flags contain `-Wl,-O1`, clang driver crashes on an assertion:
```
clang++: /var/tmp/portage/llvm-core/clang-23.0.0.9999/work/clang/include/clang/Driver/InputInfo.h:84: const char* clang::driver::InputInfo::getFilename() const: Assertion `isFilename() && "Invalid accessor."' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: /usr/lib/llvm/23/bin/clang++ -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Xclang -fno-pch-timestamp -Wall -fcolor-diagnostics -Wcast-qual -Wformat-pedantic -Wimplicit-fallthrough -Wsign-compare -Wno-extra -Wno-pedantic -fno-semantic-interposition -fdata-sections -Wl,-O1 -nostdlib -emit-llvm --target=spirv64-intel openmp/device/CMakeFiles/libompdevice.dir/src/Allocator.cpp.o openmp/device/CMakeFiles/libompdevice.dir/src/Configuration.cpp.o openmp/device/CMakeFiles/libompdevice.dir/src/Debug.cpp.o openmp/device/CMakeFiles/libompdevice.dir/src/Kernel.cpp.o openmp/device/CMakeFiles/libompdevice.dir/src/LibC.cpp.o openmp/device/CMakeFiles/libompdevice.dir/src/Mapping.cpp.o openmp/device/CMakeFiles/libompdevice.dir/src/Misc.cpp.o openmp/device/CMakeFiles/libompdevice.dir/src/Parallelism.cpp.o openmp/device/CMakeFiles/libompdevice.dir/src/Profiling.cpp.o openmp/device/CMakeFiles/libompdevice.dir/src/Reduction.cpp.o openmp/device/CMakeFiles/libompdevice.dir/src/State.cpp.o openmp/device/CMakeFiles/libompdevice.dir/src/Synchronization.cpp.o openmp/device/CMakeFiles/libompdevice.dir/src/Tasking.cpp.o openmp/device/CMakeFiles/libompdevice.dir/src/DeviceUtils.cpp.o openmp/device/CMakeFiles/libompdevice.dir/src/Workshare.cpp.o -o lib/spirv64-intel/libomptarget-spirv.bc
1. Compilation construction
2. Building compilation jobs
3. Building compilation jobs
#0 0x00007fde0574b410 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm/23/bin/../lib64/libLLVM.so.23.0git1f9b32ba+0x114b410)
#1 0x00007fde05747f74 llvm::sys::RunSignalHandlers() (/usr/lib/llvm/23/bin/../lib64/libLLVM.so.23.0git1f9b32ba+0x1147f74)
#2 0x00007fde0574815b (/usr/lib/llvm/23/bin/../lib64/libLLVM.so.23.0git1f9b32ba+0x114815b)
#3 0x00007fde05748224 (/usr/lib/llvm/23/bin/../lib64/libLLVM.so.23.0git1f9b32ba+0x1148224)
#4 0x00007fde04063be0 (/usr/lib64/libc.so.6+0x3dbe0)
#5 0x00007fde040bd88c (/usr/lib64/libc.so.6+0x9788c)
#6 0x00007fde04063aa6 raise (/usr/lib64/libc.so.6+0x3daa6)
#7 0x00007fde0404b30b abort (/usr/lib64/libc.so.6+0x2530b)
#8 0x00007fde0404b275 __assert_perror_fail (/usr/lib64/libc.so.6+0x25275)
#9 0x00007fde11196e88 (/usr/lib/llvm/23/bin/../lib64/libclang-cpp.so.23.0git1f9b32ba+0x996e88)
#10 0x00007fde11196f22 (/usr/lib/llvm/23/bin/../lib64/libclang-cpp.so.23.0git1f9b32ba+0x996f22)
#11 0x00007fde136b6497 clang::driver::Driver::BuildJobsForActionNoCache(clang::driver::Compilation&, clang::driver::Action const*, clang::driver::ToolChain const*, llvm::StringRef, bool, bool, char const*, std::map<std::pair<clang::driver::Action const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, llvm::SmallVector<clang::driver::InputInfo, 4u>, std::less<std::pair<clang::driver::Action const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>, std::allocator<std::pair<std::pair<clang::driver::Action const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>> const, llvm::SmallVector<clang::driver::InputInfo, 4u>>>>&, clang::driver::Action::OffloadKind) const (/usr/lib/llvm/23/bin/../lib64/libclang-cpp.so.23.0git1f9b32ba+0x2eb6497)
#12 0x00007fde136b46ce clang::driver::Driver::BuildJobsForAction(clang::driver::Compilation&, clang::driver::Action const*, clang::driver::ToolChain const*, llvm::StringRef, bool, bool, char const*, std::map<std::pair<clang::driver::Action const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, llvm::SmallVector<clang::driver::InputInfo, 4u>, std::less<std::pair<clang::driver::Action const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>, std::allocator<std::pair<std::pair<clang::driver::Action const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>> const, llvm::SmallVector<clang::driver::InputInfo, 4u>>>>&, clang::driver::Action::OffloadKind) const (/usr/lib/llvm/23/bin/../lib64/libclang-cpp.so.23.0git1f9b32ba+0x2eb46ce)
#13 0x00007fde136b7e3a clang::driver::Driver::BuildJobs(clang::driver::Compilation&) const (/usr/lib/llvm/23/bin/../lib64/libclang-cpp.so.23.0git1f9b32ba+0x2eb7e3a)
#14 0x00007fde136cb4ee clang::driver::Driver::BuildCompilation(llvm::ArrayRef<char const*>) (/usr/lib/llvm/23/bin/../lib64/libclang-cpp.so.23.0git1f9b32ba+0x2ecb4ee)
#15 0x000056245d1d08f4 clang_main(int, char**, llvm::ToolContext const&) (/usr/lib/llvm/23/bin/clang+++0x168f4)
#16 0x000056245d1ccbec main (/usr/lib/llvm/23/bin/clang+++0x12bec)
#17 0x00007fde0404d3fb (/usr/lib64/libc.so.6+0x273fb)
#18 0x00007fde0404d4ab __libc_start_main (/usr/lib64/libc.so.6+0x274ab)
#19 0x000056245d1ccc55 _start (/usr/lib/llvm/23/bin/clang+++0x12c55)
ninja: build stopped: subcommand failed.
```
To reproduce:
```
CC=clang CXX=clang++ LDFLAGS=-Wl,-O1 cmake -DLLVM_DEFAULT_TARGET_TRIPLE=spirv64-intel -DLLVM_ENABLE_RUNTIMES=openmp -G Ninja ${llvm_project}/runtimes
ninja -j1 -v
```
Confirmed on e865931b5f33bbab0b196489b00ee9df099402c2.
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs