https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97753
--- Comment #4 from Martin Liška <marxin at gcc dot gnu.org> --- 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<edge_def*, va_gc, vl_embed>::operator[](unsigned int) /home/marxin/Programming/gcc/gcc/vec.h:880 0x733364 vec<tree_node*, va_heap, vl_embed>::operator[](unsigned int) /home/marxin/Programming/gcc/gcc/tree.h:3428 0x733364 vec<tree_node*, va_heap, vl_ptr>::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 <https://gcc.gnu.org/bugs/> for instructions.