https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107976
Bug ID: 107976 Summary: ICE: SIGSEGV (stack overflow) in emit_case_dispatch_table (stmt.cc:783) with large --param=jump-table-max-growth-ratio-for-speed Product: gcc Version: 13.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: zsojka at seznam dot cz Target Milestone: --- Host: x86_64-pc-linux-gnu Target: x86_64-pc-linux-gnu Created attachment 54018 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54018&action=edit reduced testcase Compiler output: $ x86_64-pc-linux-gnu-gcc --param=jump-table-max-growth-ratio-for-speed=1813160384 testcase.c x86_64-pc-linux-gnu-gcc: 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. Program received signal SIGSEGV, Segmentation fault. 0x000000000138aa18 in emit_case_dispatch_table (index_expr=0x7ffff770be58, index_type=0x7ffff771f5e8, case_list=..., default_label=0x7ffff771a2c0, default_edge=0x7ffff78d23f0, minval=0x7ffff7885fc0, maxval=0x7ffff78b59d8, range=0x7ffff78d7a98, stmt_bb=0x7ffff78ad600) at /repo/gcc-trunk/gcc/stmt.cc:783 783 memset (labelvec, 0, ncases * sizeof (rtx)); (gdb) list 778 779 /* Get table of labels to jump to, in order of case index. */ 780 781 ncases = tree_to_shwi (range) + 1; 782 labelvec = XALLOCAVEC (rtx, ncases); 783 memset (labelvec, 0, ncases * sizeof (rtx)); 784 785 for (unsigned j = 0; j < case_list.length (); j++) 786 { 787 simple_case_node *n = &case_list[j]; (gdb) p ncases $1 = 69108865