This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/87974] New: ice in vect_get_vec_def_for_stmt_copy
- From: "dcb314 at hotmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 11 Nov 2018 17:03:51 +0000
- Subject: [Bug c++/87974] New: ice in vect_get_vec_def_for_stmt_copy
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87974
Bug ID: 87974
Summary: ice in vect_get_vec_def_for_stmt_copy
Product: gcc
Version: 8.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: dcb314 at hotmail dot com
Target Milestone: ---
For this C++ code:
struct h {
typedef int &c;
};
class i {
struct j {
using c = int *;
};
using as = j::c;
};
template <typename> class k {
public:
using as = i::as;
h::c operator[](long l) {
k<int[]>::as d = 0;
return d[l];
}
};
class : public k<int[]> {
} a;
long c, f;
void m() {
for (long b; b <= 6; b++)
for (long g; g < b; g++) {
unsigned long e = g;
c = 0;
for (; c < b; c++)
f = e >>= 1;
a[g] = f;
}
}
compiled by recent gcc trunk and compiler flag -O3, does this:
during GIMPLE pass: vect
bug477.cc: In function ‘void m()’:
bug477.cc:21:6: internal compiler error: in vect_get_vec_def_for_stmt_copy, at
t
ree-vect-stmts.c:1615
21 | void m() {
| ^
0x787b69 vect_get_vec_def_for_stmt_copy(vec_info*, tree_node*)
../../trunk/gcc/tree-vect-stmts.c:1615
0x787b69 vect_get_vec_def_for_stmt_copy(vec_info*, tree_node*)
../../trunk/gcc/tree-vect-stmts.c:1607
0x787b69 vect_get_vec_defs_for_stmt_copy(vec_info*, vec<tree_node*, va_heap,
vl_
ptr>*, vec<tree_node*, va_heap, vl_ptr>*)
../../trunk/gcc/tree-vect-stmts.c:1634
This bug seems to have started sometime between revision 265846
and 265907.