aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/enum-alias-2.c
blob: 7ca3f3b2db8cfb9a4858a84d597193bcdd29bec9 (plain)
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
/* { dg-do run } */
/* { dg-options "-O2" } */

typedef int A;

void* foo(void* a, void *b, void *c, void *d)
{
	*(A**)a = c;

	{
		typedef enum E B;
		enum E { E1 = -1, E2 = 0, E3 = 1 };
		*(B**)b = d;
	}

	return *(A**)a;
}

int main()
{
	A *a, b, c;
	if (&c != (A*)foo(&a, &a, &b, &c))
		__builtin_abort();
}