https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87693
Bug ID: 87693 Summary: ICE in thread_around_empty_blocks, at tree-ssa-threadedge.c:984 Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: gs...@t-online.de Target Milestone: --- Affects versions down to at least gcc 5, at -O[s123] : $ cat z1.c void f (void); void g (void); void h (int a) { void *p, **q; if (a) p = (void *)f; else p = (void *)g; q = (void *)p; if (*q == (void *)0) goto *p; L0: return; } $ gcc-9-20181021 -c z1.c $ $ gcc-9-20181021 -c z1.c -O2 during GIMPLE pass: vrp z1.c: In function 'h': z1.c:3:6: internal compiler error: Segmentation fault 3 | void h (int a) | ^ 0xa6de1f crash_signal ../../gcc/toplev.c:325 0xc0c3cc thread_around_empty_blocks ../../gcc/tree-ssa-threadedge.c:984 0xc0e010 thread_across_edge ../../gcc/tree-ssa-threadedge.c:1302 0xc0e945 thread_outgoing_edges(basic_block_def*, gcond*, const_and_copies*, avail_exprs_stack*, evrp_range_analyzer*, tree_node* (*)(gimple*, gimple*, avail_exprs_stack*, basic_block_def*)) ../../gcc/tree-ssa-threadedge.c:1376 0xc81428 vrp_dom_walker::after_dom_children(basic_block_def*) ../../gcc/tree-vrp.c:6508 0x113d094 dom_walker::walk(basic_block_def*) ../../gcc/domwalk.c:395 0xc92e9b identify_jump_threads ../../gcc/tree-vrp.c:6563 0xc92e9b execute_vrp ../../gcc/tree-vrp.c:6699