1  /* { dg-require-effective-target alloca } */
       2  
       3  int __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