mirror of
https://github.com/opencv/opencv.git
synced 2025-06-07 09:25:45 +08:00
Correct cast for _InterlockedExchangeAdd on ICC
A bug in ICC improperly identified the first parameter as "void*" rather than the proper "volatile long*". This is scheduled to be fixed in ICC in a future release. This patch casts only to a "long*" to preserve backwards compatibility with the ICC 16 and ICC 17 releases.
This commit is contained in:
parent
dc9602ee84
commit
689cf79625
@ -420,7 +420,7 @@ Cv64suf;
|
||||
|
||||
#if defined __INTEL_COMPILER && !(defined WIN32 || defined _WIN32)
|
||||
// atomic increment on the linux version of the Intel(tm) compiler
|
||||
# define CV_XADD(addr, delta) (int)_InterlockedExchangeAdd(const_cast<void*>(reinterpret_cast<volatile void*>(addr)), delta)
|
||||
# define CV_XADD(addr, delta) (int)_InterlockedExchangeAdd(const_cast<long*>(reinterpret_cast<volatile long*>(addr)), delta)
|
||||
#elif defined __GNUC__
|
||||
# if defined __clang__ && __clang_major__ >= 3 && !defined __ANDROID__ && !defined __EMSCRIPTEN__ && !defined(__CUDACC__)
|
||||
# ifdef __ATOMIC_ACQ_REL
|
||||
|
Loading…
Reference in New Issue
Block a user