int __re_compile_fastmap(unsigned char *p) { unsigned char **stack; unsigned size; unsigned avail; stack = __builtin_alloca(5 * sizeof(unsigned char*)); if (stack == 0) return -2; size = 5; avail = 0; for (;;) { switch (*p++) { case 0: if (avail == size) return -2; stack[avail++] = p; } } return 0; }