https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87201
Bug ID: 87201 Summary: [9 Regression] Segfault in GIMPLE pass: switchlower_O0 Product: gcc Version: 9.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: burnus at gcc dot gnu.org Target Milestone: --- Host: x86_64-pc-linux-gnu Target: x86_64-pc-linux-gnu Build: x86_64-pc-linux-gnu Created attachment 44650 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44650&action=edit Test case, compiled with "g++ test.ii" That's with GCC 9. I did this morning a bootstrip (incremental build) with r264051 - and installed it. A "git pull" then made r264052 available. Using the previous build as system compiler failed with: ../../gcc/genoutput.c:276:1: internal compiler error: Segmentation fault (Attached is a more simplified test case, which crashes my r264051. TODO: bisect; [me: use clean GCC bootstrap not incremental build].) g++ -w input21.ii during GIMPLE pass: switchlower_O0 input21.ii: In function ‘long unsigned int ParseBinary(const char*, XPParser**)’: input21.ii:7:26: internal compiler error: Segmentation fault 7 | static long unsigned int ParseBinary (const char *str, XPParser ** p) { | ^~~~~~~~~~~ 0xed326f crash_signal ../../gcc/toplev.c:325 0xfb4198 tree_switch_conversion::switch_decision_tree::balance_case_nodes(tree_switch_conversion::case_tree_node**, tree_switch_conversion::case_tree_node*) ../../gcc/tree-switch-conversion.c:1944 0xfb4fca tree_switch_conversion::switch_decision_tree::emit(basic_block_def*, tree_node*, profile_probability, tree_node*) ../../gcc/tree-switch-conversion.c:1869 0xfb634e tree_switch_conversion::switch_decision_tree::try_switch_expansion(vec<tree_switch_conversion::cluster*, va_heap, vl_ptr>&) ../../gcc/tree-switch-conversion.c:1783 0xfb6c2f tree_switch_conversion::switch_decision_tree::analyze_switch_statement() ../../gcc/tree-switch-conversion.c:1709 0xfb72c2 execute ../../gcc/tree-switch-conversion.c:2444