Closed
Description
Describe the bug
The alignment strategy for local arguments introduced with PR #5113 does not take into account zero-sized local arguments. Since, in such circumstances, the requested alignment is also zero (see sycl/plugins/cuda/pi_cuda.hpp
):
const size_t alignment = std::min(max_alignment, size);
,
the program receives signal SIGFPE, Arithmetic exception at runtime at the following modulus test:
localOffset % alignment != 0
.
This problem is similar to that reported in issue #1467. I confess I understand little about local arguments or why the application I'm using uses zero-sized local arguments. Please do feel free to disregard this issue if this is just incorrect behaviour by the application.
Environment:
- OS: CentOS Linux release 8.5.2111
- Target device and vendor: NVIDIA Quadro GV100
- DPC++ version: ebb1281 and newer