https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124608
Iain Buclaw <ibuclaw at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ibuclaw at gcc dot gnu.org
--- Comment #18 from Iain Buclaw <ibuclaw at gcc dot gnu.org> ---
Reduced conservative/gc.d, translated to equivalent C.
```
struct S
{
__UINT64_TYPE__ a;
__UINT8_TYPE__ b;
__UINT64_TYPE__ c;
__UINT8_TYPE__ d;
__UINT64_TYPE__ e;
__UINT8_TYPE__ f;
__UINT64_TYPE__ g[1];
float h;
__UINT64_TYPE__ i;
};
int opEquals (struct S* t, struct S* p)
{
return t->a == p->a && t->b == p->b
&& t->c == p->c && t->d == p->d
&& t->e == p->e && t->f == p->f
&& __builtin_memcmp(t->g, p->g, 8) == 0
&& t->h == p->h && t->i == p->i;
}
```
$ /aarch64/gcc/build/./gcc/xgcc -B/aarch64/gcc/build/./gcc/ -nostdinc gc.c -O1
xgcc: internal compiler error: Segmentation fault signal terminated program cc1
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
See <https://gcc.gnu.org/bugs/> for instructions.
gdb
Program received signal SIGSEGV, Segmentation fault.
0x0000000000c6ccd4 in wi::mul_internal (val=0xfffffc000650,
op1val=0xfffffc000610, op1len=1,
op2val=0xfffffc000660, op2len=1, prec=128, sgn=UNSIGNED, overflow=0x0,
high=false)
at ../../gcc/wide-int.cc:1310