https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63751
Bug ID: 63751
Summary: ICE in tree_to_uhwi, at tree.h:3668
Product: gcc
Version: 5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: doko at gcc dot gnu.org
fails on the 4.9 branch, works on the trunk
$ cat tst.c
/* testatomic.c */
#include <stdatomic.h>
#include <stdbool.h>
struct myrcu_pointer
{
_Atomic(void *) p;
};
bool
myrcu_compare_exchange__(struct myrcu_pointer *pointer, const void *exp,
void *value, memory_order order_succ,
memory_order order_fail)
{
return atomic_compare_exchange_weak_explicit(&pointer->p, (void *) exp,
value, order_succ,
order_fail);
}
$ gcc -c tst.c
tst.c: In function 'myrcu_compare_exchange__':
tst.c:15:5: internal compiler error: in tree_to_uhwi, at tree.h:3668
return atomic_compare_exchange_weak_explicit(&pointer->p, (void *) exp,
^
Please submit a full bug report,
with preprocessed source if appropriate.
$ /usr/lib/gcc-snapshot/bin/gcc -c tst.c
In file included from tst.c:2:0:
tst.c: In function 'myrcu_compare_exchange__':
tst.c:15:12: error: size mismatch in argument 2 of '__atomic_compare_exchange'
return atomic_compare_exchange_weak_explicit(&pointer->p, (void *) exp,
^