1/* { dg-require-effective-target alloca } */
2
3int __re_compile_fastmap(unsigned char *p)
4{
5    unsigned char **stack;
6    unsigned size;
7    unsigned avail;
8
9    stack = __builtin_alloca(5 * sizeof(unsigned char*));
10    if (stack == 0)
11	return -2;
12    size = 5;
13    avail = 0;
14
15    for (;;) {
16	switch (*p++) {
17	case 0:
18	    if (avail == size)
19		return -2;
20	    stack[avail++] = p;
21	}
22    }
23
24    return 0;
25}
26
27