/* Tests for labels before declarations and at ends of compound statements.  */
/* { dg-do run } */
/* { dg-options "-std=c23 -pedantic-errors" } */

int f(int x) 
{ 
	goto b;
	a: int i = 2 * x;
	aa: int u = 0; int v = 0;
           goto c;
	b: goto a;
	{ i *= 3; c: }
	return i + u + v;
        d:
}

int main(void)
{
	if (2 != f(1))
		__builtin_abort();

	return 0;
}
