easy_lock: fix build with icc

The Intel compiler tries to look like GCC *and* clang *and* it lies in
its __has_builtin() function (returns true when it should return false),
so override it.

Reported-by: Matthew Thompson
Fixes #9081
Closes #9144
This commit is contained in:
Daniel Stenberg 2022-07-12 15:57:02 +02:00
parent 60be90d14e
commit e0c68f0255
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2

View File

@ -61,6 +61,10 @@ typedef PVOID SRWLOCK, *PSRWLOCK;
#define __has_builtin(x) 0
#endif
#ifndef __INTEL_COMPILER
/* The Intel compiler tries to look like GCC *and* clang *and* lies in its
__has_builtin() function, so override it. */
/* if GCC on i386/x86_64 or if the built-in is present */
#if ( (defined(__GNUC__) && !defined(__clang__)) && \
(defined(__i386__) || defined(__x86_64__))) || \
@ -68,6 +72,8 @@ typedef PVOID SRWLOCK, *PSRWLOCK;
#define HAVE_BUILTIN_IA32_PAUSE
#endif
#endif
static inline void curl_simple_lock_lock(curl_simple_lock *lock)
{
for(;;) {