You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
with clang in CUDA mode, compilation fails because std::free is an overloaded function. This small reproducer shows the problem on compiler explorer: https://godbolt.org/z/1bdKf86f9 (unfortunately for an older version of clang and cuda and without fmt, but the issue is the same). Device overloads are considered separate overloads with clang in CUDA mode, which means that taking the address of std::free doesn't work.
Note, we're not trying to use fmt in device code and don't expect this to work in device code, this is purely host code that just happens to be included in a .cu file.
This code seems to have been added in #3076, and so the problem appears from version 10.0.0 onwards.
Would you accept a patch to
e.g. choose the #else branch of that implementation when in CUDA mode with clang?
replace decltype(&std::free) with void(void*)?
some other workaround?
The text was updated successfully, but these errors were encountered:
When compiling
fmt/include/fmt/std.h
Lines 418 to 419 in 6f95000
std::free
is an overloaded function. This small reproducer shows the problem on compiler explorer: https://godbolt.org/z/1bdKf86f9 (unfortunately for an older version of clang and cuda and without fmt, but the issue is the same). Device overloads are considered separate overloads with clang in CUDA mode, which means that taking the address ofstd::free
doesn't work.Note, we're not trying to use
fmt
in device code and don't expect this to work in device code, this is purely host code that just happens to be included in a.cu
file.This code seems to have been added in #3076, and so the problem appears from version 10.0.0 onwards.
Would you accept a patch to
#else
branch of that implementation when in CUDA mode with clang?decltype(&std::free)
withvoid(void*)
?The text was updated successfully, but these errors were encountered: