/* PR rtl-optimization/52714

   Check that combine manages to remove the "stack == 0" test.
   Without ICEing.  */

/* { dg-do compile } */
/* { dg-options "-O1" } */

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;
}

/* { dg-final { scan-assembler-not {\mtst\.l %sp\M} } } */