[Bug rtl-optimization/63340] [5.0 regression] FAIL: gcc.dg/atomic/c11-atomic-exec-2.c -O2 execution test

schwab@linux-m68k.org gcc-bugzilla@gcc.gnu.org
Tue Sep 23 11:13:00 GMT 2014


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63340

--- Comment #3 from Andreas Schwab <schwab@linux-m68k.org> ---
Reduced:

extern void abort (void);
extern void exit (int);

#define TEST_COMPOUND(TYPE, LHSVAL, RHSVAL, OP)                \
  do                                    \
    {                                    \
      static volatile _Atomic (TYPE) a = (TYPE) (LHSVAL);        \
      if ((a OP##= (RHSVAL)) != (TYPE) ((TYPE) (LHSVAL) OP (RHSVAL)))    \
    abort ();                            \
      if (a != (TYPE) ((TYPE) (LHSVAL) OP (RHSVAL)))            \
    abort ();                            \
    }                                    \
  while (0)

#define TEST_COMPOUND_ARITH(LHSVAL, RHSVAL, OP)                \
  do                                    \
    {                                    \
      TEST_COMPOUND (float, (LHSVAL), (RHSVAL), OP);            \
      TEST_COMPOUND (double, (LHSVAL), (RHSVAL), OP);            \
    }                                    \
  while (0)

static void
test_mult (void)
{
  TEST_COMPOUND_ARITH (1, 2, *);
}

int
main (void)
{
  test_mult ();
  exit (0);
}



More information about the Gcc-bugs mailing list