Fixed bug #1097
There are problems with including intrin.h in C linkage in C++ compilation, and further conflicts between intrin.h and winnt.h on Visual Studio 2005.
This commit is contained in:
parent
14a0cb6fbc
commit
c4bf458e47
2 changed files with 12 additions and 2 deletions
|
@ -56,6 +56,13 @@
|
|||
|
||||
#include "begin_code.h"
|
||||
|
||||
/* Need to do this here because intrin.h has C++ code in it */
|
||||
/* Visual Studio 2005 has a bug where intrin.h conflicts with winnt.h */
|
||||
#if defined(_MSC_VER) && (_MSC_VER >= 1500)
|
||||
#include <intrin.h>
|
||||
#define HAVE_MSC_ATOMICS
|
||||
#endif
|
||||
|
||||
/* Set up for C function definitions, even when using C++ */
|
||||
#ifdef __cplusplus
|
||||
/* *INDENT-OFF* */
|
||||
|
@ -112,8 +119,7 @@ extern DECLSPEC void SDLCALL SDL_AtomicUnlock(SDL_SpinLock *lock);
|
|||
*/
|
||||
#ifndef SDL_DISABLE_ATOMIC_INLINE
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
#include <intrin.h>
|
||||
#if defined(HAVE_MSC_ATOMICS)
|
||||
|
||||
#define SDL_AtomicSet(a, v) _InterlockedExchange((long*)&(a)->value, (v))
|
||||
#define SDL_AtomicGet(a) ((a)->value)
|
||||
|
|
|
@ -24,6 +24,10 @@
|
|||
#include "SDL_atomic.h"
|
||||
#include "SDL_timer.h"
|
||||
|
||||
/* Don't do the check for Visual Studio 2005, it's safe here */
|
||||
#if defined(_MSC_VER)
|
||||
#include <intrin.h>
|
||||
#endif
|
||||
|
||||
/* This function is where all the magic happens... */
|
||||
SDL_bool
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue