Possible bug in sm_12_atomic_functions.h

We stumbled upon a problem in our application, where we use “all” as a variable name. When we ported it to CUDA, this collided with a function all(bool) that the CUDA headers define in the global namespace.

The definition is found in sm_12_atomic_functions.h where a function “bool all(bool cond)” is defined as a simple wrapper around “int __all(int cond)”. An equivalent definition is found for any(bool) and __any(int).

I suppose that this is an error and should be “bool __all(bool cond)” and “bool __any(bool cond)”, both for consistency with the “int” counterparts and for avoiding namespace collisions. Additionally, I have only found mention of the __all() function in the CUDA programming guide.

Can anyone confirm this is a bug and does anyone know what I can do to get it fixed in future CUDA versions?

sm 12 is deprecated in CUDA 6.5 and will be deleted in a future CUDA release.