NVIDIA / numba-cuda

BSD 2-Clause "Simplified" License
36 stars 8 forks source link

[BUG] Use of uninitialized value triggered in NVVM #64

Open gmarkall opened 3 weeks ago

gmarkall commented 3 weeks ago

When running the test suite under valgrind, the following can be observed:

test_device_function_with_debug (numba.cuda.tests.cudapy.test_compiler.TestCompile.test_device_function_with_debug) ... ==32116== Conditional jump or move depends on uninitialised value(s)
==32116==    at 0xC18EBDA2: ??? (in /usr/local/cuda-12.6/nvvm/lib64/libnvvm.so.4.0.0)
==32116==    by 0xC18B80A0: ??? (in /usr/local/cuda-12.6/nvvm/lib64/libnvvm.so.4.0.0)
==32116==    by 0xC1898FE9: ??? (in /usr/local/cuda-12.6/nvvm/lib64/libnvvm.so.4.0.0)
==32116==    by 0xC189441E: ??? (in /usr/local/cuda-12.6/nvvm/lib64/libnvvm.so.4.0.0)
==32116==    by 0xC165EB68: ??? (in /usr/local/cuda-12.6/nvvm/lib64/libnvvm.so.4.0.0)
==32116==    by 0xC12E30E7: ??? (in /usr/local/cuda-12.6/nvvm/lib64/libnvvm.so.4.0.0)
==32116==    by 0xC0A63C4F: ??? (in /usr/local/cuda-12.6/nvvm/lib64/libnvvm.so.4.0.0)
==32116==    by 0xC0A63CA2: ??? (in /usr/local/cuda-12.6/nvvm/lib64/libnvvm.so.4.0.0)
==32116==    by 0xC0A62E4E: ??? (in /usr/local/cuda-12.6/nvvm/lib64/libnvvm.so.4.0.0)
==32116==    by 0xC0734D2E: ??? (in /usr/local/cuda-12.6/nvvm/lib64/libnvvm.so.4.0.0)
==32116==    by 0xC0740340: ??? (in /usr/local/cuda-12.6/nvvm/lib64/libnvvm.so.4.0.0)
==32116==    by 0x5373BA49: ffi_call_unix64 (in /home/gmarkall/miniforge3/envs/numbadev/lib/libffi.so.8.1.0)
==32116== 

It is quite possible that this occurs because we do not pass the -g flag to NVVM even when including debuginfo metadata, which I think is not the correct way to drive debuginfo generation with NVVM.