1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
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; }