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

--- Comment #1 from Hongtao.liu <crazylht at gmail dot com> ---
Small testcase reprodce it.

#include <stdatomic.h>

int
tbit0 (_Atomic int* a)
{
#define BIT (0x01 << 3)
  return atomic_fetch_or(a, BIT) & BIT;
#undef BIT 
}

aarch64-linux-gnu-gcc test.c -O2 -S
test.c: In function ‘tbit0’:
test.c:4:1: error: type mismatch in binary expression
    4 | tbit0 (_Atomic int* a)
      | ^~~~~
int

unsigned int

int

_7 = _1 & 8;
during GIMPLE pass: fab
test.c:4:1: internal compiler error: verify_gimple failed
0xf99c2d verify_gimple_in_cfg(function*, bool)
       
/export/users2/liuhongt/gcc/intel-innersource/master/gcc/tree-cfg.c:5577
0xe618df execute_function_todo
        /export/users2/liuhongt/gcc/intel-innersource/master/gcc/passes.c:2042
0xe622cc execute_todo
        /export/users2/liuhongt/gcc/intel-innersource/master/gcc/passes.c:2096
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

Reply via email to