https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113555
Bug ID: 113555 Summary: Yet another failure in verify_ssa Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: dcb314 at hotmail dot com Target Milestone: --- Today's gcc trunk says: $ ~/gcc/results.20240123.asan.ubsan/bin/gcc -c -O3 -w bug1000.c $ ~/gcc/results.20240123.asan.ubsan/bin/gcc -c -O3 -w -march=znver3 bug1000.c bug1000.c: In function ‘net_roa_check_ip4_trie_tab’: bug1000.c:20:6: error: definition in block 4 does not dominate use in block 5 20 | void net_roa_check_ip4_trie_tab() { | ^~~~~~~~~~~~~~~~~~~~~~~~~~ for SSA_NAME: vect__14.32_111 in statement: vect__14.32_112 = PHI <vect__14.32_111(5)> PHI argument vect__14.32_111 for PHI node vect__14.32_112 = PHI <vect__14.32_111(5)> during GIMPLE pass: vect bug1000.c:20:6: internal compiler error: verify_ssa failed Reduced source code is int ip4_getbit_a, ip4_getbit_pos, ip4_clrbit_pos; void ip4_clrbit(int *a) { *a &= ip4_clrbit_pos; } typedef struct { char pxlen; int prefix } net_addr_ip4; void fib_get_chain(); int trie_match_longest_ip4(); int trie_match_next_longest_ip4(net_addr_ip4 *n) { int __trans_tmp_1; while (n->pxlen) { n->pxlen--; ip4_clrbit(&n->prefix); __trans_tmp_1 = ip4_getbit_a >> ip4_getbit_pos; if (__trans_tmp_1) return 1; } return 0; } void net_roa_check_ip4_trie_tab() { net_addr_ip4 px0; for (int _n = trie_match_longest_ip4(&px0); _n; _n = trie_match_next_longest_ip4(&px0)) fib_get_chain(); } The bug seems to have existed since at least 20231227. On a side note, 1000 bug reports and enhancement requests in 11 years.