diff --git a/common/xash3d_types.h b/common/xash3d_types.h index 3ce4e612..05c9dbff 100644 --- a/common/xash3d_types.h +++ b/common/xash3d_types.h @@ -83,12 +83,15 @@ typedef uint64_t longtime_t; #define NONNULL __attribute__(( nonnull )) #define _format( x ) __attribute__(( format( printf, x, x + 1 ))) #define ALLOC_CHECK( x ) __attribute__(( alloc_size( x ))) + #define NO_ASAN __attribute__(( no_sanitize( "address" ))) #define RENAME_SYMBOL( x ) asm( x ) #else #if defined( _MSC_VER ) #define EXPORT __declspec( dllexport ) + #define NO_ASAN __declspec( no_sanitize_address ) #else #define EXPORT + #define NO_ASAN #endif #define GAME_EXPORT #define NORETURN @@ -98,17 +101,9 @@ typedef uint64_t longtime_t; #define RENAME_SYMBOL( x ) #endif -#if ( __GNUC__ >= 3 ) +#if ( __GNUC__ >= 3 ) || ( defined( __has_builtin ) && __has_builtin( __builtin_expect )) #define unlikely( x ) __builtin_expect( x, 0 ) #define likely( x ) __builtin_expect( x, 1 ) -#elif defined( __has_builtin ) - #if __has_builtin( __builtin_expect ) - #define unlikely( x ) __builtin_expect( x, 0 ) - #define likely( x ) __builtin_expect( x, 1 ) - #else - #define unlikely( x ) ( x ) - #define likely( x ) ( x ) - #endif #else #define unlikely( x ) ( x ) #define likely( x ) ( x ) diff --git a/engine/common/net_buffer.h b/engine/common/net_buffer.h index 327a63bb..dcb867f2 100644 --- a/engine/common/net_buffer.h +++ b/engine/common/net_buffer.h @@ -174,7 +174,7 @@ void MSG_ExciseBits( sizebuf_t *sb, int startbit, int bitstoremove ); // Bit-write functions void MSG_WriteOneBit( sizebuf_t *sb, int nValue ); -void MSG_WriteUBitLong( sizebuf_t *sb, uint curData, int numbits ); +void MSG_WriteUBitLong( sizebuf_t *sb, uint curData, int numbits ) NO_ASAN; void MSG_WriteSBitLong( sizebuf_t *sb, int data, int numbits ); void MSG_WriteBitLong( sizebuf_t *sb, uint data, int numbits, qboolean bSigned ); qboolean MSG_WriteBits( sizebuf_t *sb, const void *pData, int nBits );