https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97753
--- Comment #4 from Martin Liška ---
Maybe a bit different backtrace:
$ cat trigger.i
typedef struct {
_Bool trig_insert_before_row;
_Bool trig_insert_after_row;
_Bool trig_insert_instead_row;
_Bool trig_insert_before_statement;
_Bool trig_insert_after_statement;
_Bool trig_update_before_row;
_Bool trig_update_after_row;
_Bool trig_update_instead_row;
_Bool trig_update_before_statement;
_Bool trig_update_after_statement;
_Bool trig_delete_before_row;
_Bool trig_delete_after_row;
_Bool trig_delete_instead_row;
_Bool trig_delete_before_statement;
_Bool trig_delete_after_statement;
_Bool trig_truncate_before_statement;
} TriggerDesc;
void SetTriggerFlags();
void
RelationBuildTriggers() {
int i;
for (; i; i++)
SetTriggerFlags();
}
void
SetTriggerFlags(TriggerDesc *trigdesc) {
short tgtype;
trigdesc->trig_insert_before_row |= trigdesc->trig_insert_after_row |=
trigdesc->trig_insert_instead_row |= tgtype == 0;
trigdesc->trig_insert_before_statement |=
trigdesc->trig_insert_after_statement |=
trigdesc->trig_update_before_row |= trigdesc->trig_update_after_row |=
trigdesc->trig_update_instead_row |=
trigdesc->trig_update_before_statement |=
trigdesc->trig_update_after_statement |=
trigdesc->trig_delete_before_row |= trigdesc->trig_delete_after_row |=
trigdesc->trig_delete_instead_row |=
trigdesc->trig_delete_before_statement |=
trigdesc->trig_delete_after_statement |=
trigdesc->trig_truncate_before_statement |= tgtype == 0;
}
$ gcc -O3 trigger.i -c -fno-strict-aliasing
during GIMPLE pass: slp
trigger.i: In function ‘RelationBuildTriggers’:
trigger.i:23:1: internal compiler error: in operator[], at vec.h:880
23 | RelationBuildTriggers() {
| ^
0x732816 vec::operator[](unsigned int)
/home/marxin/Programming/gcc/gcc/vec.h:880
0x733364 vec::operator[](unsigned int)
/home/marxin/Programming/gcc/gcc/tree.h:3428
0x733364 vec::operator[](unsigned int)
/home/marxin/Programming/gcc/gcc/vec.h:1451
0x733364 vect_create_vectorized_demotion_stmts
/home/marxin/Programming/gcc/gcc/tree-vect-stmts.c:4422
0x10245fb vectorizable_conversion
/home/marxin/Programming/gcc/gcc/tree-vect-stmts.c:4993
0x10264d8 vect_transform_stmt(vec_info*, _stmt_vec_info*,
gimple_stmt_iterator*, _slp_tree*, _slp_instance*)
/home/marxin/Programming/gcc/gcc/tree-vect-stmts.c:10776
0x105534c vect_schedule_slp_node
/home/marxin/Programming/gcc/gcc/tree-vect-slp.c:5437
0x106071c vect_schedule_scc
/home/marxin/Programming/gcc/gcc/tree-vect-slp.c:5599
0x106048f vect_schedule_scc
/home/marxin/Programming/gcc/gcc/tree-vect-slp.c:5580
0x1060d07 vect_schedule_slp(vec_info*, vec<_slp_instance*, va_heap, vl_ptr>)
/home/marxin/Programming/gcc/gcc/tree-vect-slp.c:5715
0x106208c vect_slp_region
/home/marxin/Programming/gcc/gcc/tree-vect-slp.c:4264
0x106208c vect_slp_bbs
/home/marxin/Programming/gcc/gcc/tree-vect-slp.c:4374
0x1062e54 vect_slp_function(function*)
/home/marxin/Programming/gcc/gcc/tree-vect-slp.c:4460
0x1064cc6 execute
/home/marxin/Programming/gcc/gcc/tree-vectorizer.c:1437
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See for instructions.