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

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |marxin at gcc dot gnu.org,
                   |                            |muecker at gwdg dot de
      Known to fail|                            |11.0
      Known to work|                            |10.2.0
           Keywords|needs-bisection             |
           See Also|                            |https://gcc.gnu.org/bugzill
                   |                            |a/show_bug.cgi?id=98029

--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> ---
Confirmed, started with r11-5188-g32934a4f45a72144.

There's reduced test-case:

$ cat atomic.i
int main(void) {
  static volatile _Atomic(double) a, b = (double)((0));
  if ((a = b) != ((double)((0))))
    __builtin_abort();

  return 0;
}

$ gcc -g atomic.i -m32 -c -O2 && gcc-10 -m32 -latomic atomic.o && valgrind
./a.out
==2400== Memcheck, a memory error detector
==2400== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==2400== Using Valgrind-3.16.1 and LibVEX; rerun with -h for copyright info
==2400== Command: ./a.out
==2400== 
==2400== Conditional jump or move depends on uninitialised value(s)
==2400==    at 0x8049081: main (atomic.i:3)
==2400== 
==2400== Conditional jump or move depends on uninitialised value(s)
==2400==    at 0x8049087: main (atomic.i:3)
==2400== 
==2400== 
==2400== Process terminating with default action of signal 6 (SIGABRT): dumping
core
==2400==    at 0x40C17D6: raise (in /lib/libc-2.32.so)
==2400==    by 0x40A9313: abort (in /lib/libc-2.32.so)
==2400==    by 0x8049054: main.cold (atomic.i:4)
==2400==    by 0x40AAF75: (below main) (in /lib/libc-2.32.so)
==2400== 
==2400== HEAP SUMMARY:
==2400==     in use at exit: 0 bytes in 0 blocks
==2400==   total heap usage: 0 allocs, 0 frees, 0 bytes allocated
==2400== 
==2400== All heap blocks were freed -- no leaks are possible
==2400== 
==2400== Use --track-origins=yes to see where uninitialised values come from
==2400== For lists of detected and suppressed errors, rerun with: -s
==2400== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
Aborted (core dumped)

Reply via email to