https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83609
Bug ID: 83609
Summary: [8 Regression] ICE in read_complex_part at
gcc/expr.c:3202
Product: gcc
Version: unknown
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: marxin at gcc dot gnu.org
CC: jamborm at gcc dot gnu.org
Target Milestone: ---
Starting from Martin's r255163 we ICE on:
$ cat ice2.ii
template <typename> class b;
template <> struct b<float>
{
float
c ()
{
return __real__ d;
}
_Complex float d;
};
void e (int, const char *);
template <class f>
void
g ()
{
b<f> h;
f *a = (f *) &h;
a[0] = a[1] = 6;
h.c () ? void() : e (7, __PRETTY_FUNCTION__);
}
int main () { g<float> (); return 0; }
$ g++ -O2 -fno-tree-forwprop -c ice2.ii
during RTL pass: expand
ice2.ii: In function ‘int main()’:
ice2.ii:18:3: internal compiler error: Segmentation fault
a[0] = a[1] = 6;
^
0xdb48af crash_signal
../../gcc/toplev.c:325
0xa6aad0 read_complex_part(rtx_def*, bool)
../../gcc/expr.c:3202
0xa76002 expand_assignment(tree_node*, tree_node*, bool)
../../gcc/expr.c:5155
0x9474c8 expand_gimple_stmt_1
../../gcc/cfgexpand.c:3681
0x9474c8 expand_gimple_stmt
../../gcc/cfgexpand.c:3779
0x949d17 expand_gimple_basic_block
../../gcc/cfgexpand.c:5796
0x94fa2e execute
../../gcc/cfgexpand.c:6402
Adding -fno-tree-sra also leads to the same revision.