https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114048
--- Comment #2 from Sam James <sjames at gcc dot gnu.org> --- Reduced: ``` typedef struct { void *child[2]; char otherbits; } critbit0_node; int allprefixed_traverse(char *top) { if (top) { critbit0_node *q = (void *)top - 1; int direction = 0; for (;; ++direction) switch (allprefixed_traverse(q->child[direction])) { case 1: break; case 0: return 0; default: return 1; } } } ```