https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111583
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever confirmed|0 |1 Last reconfirmed| |2023-09-25 --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Confirmed. The problem is a latent bug in ldist. It turns: ``` <bb 5> [local count: 955630224]: a_5 = a_4 + 1; a.4_6 = (char *) a_4; *a.4_6 = 0; <bb 6> [local count: 1073741824]: # a_4 = PHI <a_2(4), a_5(5)> # j_7 = PHI <j_3(4), j_8(5)> j_8 = j_7 + 18446744073709551615; if (j_7 != 0) goto <bb 5>; [89.00%] else goto <bb 7>; [11.00%] ``` Into: ``` a_2 = (long int) k_1(D); j_3 = (long unsigned int) k_1(D); _23 = (sizetype) k_1(D); _25 = (char *) a_2; __builtin_memset (_25, 0, _23); ``` Which then basically says k!=0 as _25 can't be a null pointer.