mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
my_atomic-t.c:
gcc bug workaround
This commit is contained in:
@@ -18,6 +18,13 @@
|
||||
#include <my_atomic.h>
|
||||
#include <tap.h>
|
||||
|
||||
/* at least gcc 3.4.5 and 3.4.6 (but not 3.2.3) on RHEL */
|
||||
#if __GNUC__ == 3 && __GNUC_MINOR__ == 4
|
||||
#define GCC_BUG_WORKAROUND volatile
|
||||
#else
|
||||
#define GCC_BUG_WORKAROUND
|
||||
#endif
|
||||
|
||||
int32 a32,b32,c32;
|
||||
my_atomic_rwlock_t rwl;
|
||||
|
||||
@@ -30,7 +37,7 @@ int N;
|
||||
pthread_handler_t test_atomic_add_handler(void *arg)
|
||||
{
|
||||
int m=*(int *)arg;
|
||||
int32 x;
|
||||
GCC_BUG_WORKAROUND int32 x;
|
||||
for (x=((int)((long)(&m))); m ; m--)
|
||||
{
|
||||
x=x*m+0x87654321;
|
||||
@@ -102,7 +109,7 @@ pthread_handler_t test_atomic_swap_handler(void *arg)
|
||||
pthread_handler_t test_atomic_cas_handler(void *arg)
|
||||
{
|
||||
int m=*(int *)arg, ok;
|
||||
int32 x,y;
|
||||
GCC_BUG_WORKAROUND int32 x,y;
|
||||
for (x=((int)((long)(&m))); m ; m--)
|
||||
{
|
||||
my_atomic_rwlock_wrlock(&rwl);
|
||||
|
||||
Reference in New Issue
Block a user