Commit 09012c2f authored by serg@janus.mylan's avatar serg@janus.mylan
Browse files

my_atomic-t.c:

  gcc bug workaround
parent d9ca7b67
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -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);