https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80217
Bug ID: 80217 Summary: [7 Regression] ICE in set_ssa_name_value (deep recursion in derive_equivalencs_from_bit_ior) Product: gcc Version: 7.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- gcc-7.0.0-alpha20170326 snapshot ICEs when compiling the following snippet w/ -O1 (-O2, -O3, -Ofast): int uk, c4; void hk (int zo, unsigned char tu) { if (uk != 0) { for (;;) { } if (uk != 0) { if (uk != 0) { tu |= (0 || ((c4 /= 2) / c4) * c4); ++c4; uk += tu; ++uk; } ++uk; } } if (zo != 0) { uk = 2; while (uk != 0) uk = 1; while (tu != 0) { lh: zo |= uk; if (zo != 0) tu = zo; else tu = 0; while (uk != 0) { } } } for (uk = 0; uk < 1; ++uk) for (uk = 0; uk < 1; ++uk) { uk = 1; while (uk != 0) { } } goto lh; } % gcc-7.0.0-alpha20170326 -O1 -w -c btw2qvlq.c gcc-7.0.0-alpha20170326: internal compiler error: Segmentation fault (program cc1) Program received signal SIGSEGV, Segmentation fault. 0x0000000000d7140c in set_ssa_name_value(tree_node*, tree_node*) () #0 0x0000000000d7140c in set_ssa_name_value(tree_node*, tree_node*) () #1 0x0000000000d41b4a in const_and_copies::record_const_or_copy_raw(tree_node*, tree_node*, tree_node*) () #2 0x0000000000c99c7a in derive_equivalencs_from_bit_ior(tree_node*, const_and_copies*) () #3 0x0000000000c99cb4 in derive_equivalencs_from_bit_ior(tree_node*, const_and_copies*) () #4 0x0000000000c99cb4 in derive_equivalencs_from_bit_ior(tree_node*, const_and_copies*) () #5 0x0000000000c99cb4 in derive_equivalencs_from_bit_ior(tree_node*, const_and_copies*) () #6 0x0000000000c99cb4 in derive_equivalencs_from_bit_ior(tree_node*, const_and_copies*) () #7 0x0000000000c99cb4 in derive_equivalencs_from_bit_ior(tree_node*, const_and_copies*) () #8 0x0000000000c99cb4 in derive_equivalencs_from_bit_ior(tree_node*, const_and_copies*) () #9 0x0000000000c99cb4 in derive_equivalencs_from_bit_ior(tree_node*, const_and_copies*) () (More stack frames follow...)