[Bug c++/123399] [13/14/15/16 Regression] ICE: 'verify_gimple' failed with __sync_val_compare_and_swap and "large" integer cast from pointer since r9-20
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Jan 15 14:47:01 GMT 2026
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123399
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
For normal ... arguments we add the extra cast though:
#ifdef __SIZEOF_INT128__
typedef __int128 T;
#else
typedef long long T;
#endif
T v = 0;
void baz (int, ...);
void
bar ()
{
baz (0, (T) "");
}
void
foo ()
{
__sync_val_compare_and_swap (&v, 0, (T) "");
}
has
baz (0, (T) (long int) "")
but
(void) (__int128) __sync_val_compare_and_swap_16 ((volatile void *) &v, 0,
(__int128 unsigned) (const char *) "")
More information about the Gcc-bugs
mailing list