If the dynamically loaded module has been compiled with -fopenmp-targets
and has no target regions, it has empty target descriptor. It leads to a
crash at the runtime if another module has at least one target region
and at least one entry in its descriptor. The runtime library is unable
to load the empty binary descriptor and terminates the execution.
Caused by a clang-offload-wrapper.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
Unit tests: pass. 61723 tests passed, 0 failed and 779 were skipped.
clang-tidy: fail. Please fix clang-tidy findings.
clang-format: fail. Please format your changes with clang-format by running git-clang-format HEAD^ or applying this patch.
Build artifacts: diff.json, clang-tidy.txt, clang-format.patch, CMakeCache.txt, console-log.txt, test-results.xml
Comment Actions
I got a question: since there is no target region in the shared library at all, why is desc->NumDeviceImages = 1 where desc is the one in the shared library?
Comment Actions
It is an empty target region with no entries at all. It has some data inside (mostly, metadata, I assume), but no real target entries.
clang-tidy: warning: invalid case style for function 'UnregisterLib' [readability-identifier-naming]
clang-tidy: warning: invalid case style for parameter 'desc' [readability-identifier-naming]