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.