1 /* { dg-do run } */
2 
3 enum e1 { A, B };
4 enum e2 { C, D };
5 
6 __attribute__((noinline,noclone))
f(unsigned int * p)7 enum e1 f(unsigned int *p)
8 {
9   *(enum e1 *)p = A;
10   *(enum e2 *)p = D;
11   return *(enum e1 *)p;
12 }
13 
main()14 int main()
15 {
16   unsigned int storage;
17 
18   if (f(&storage) != B)
19     __builtin_abort();
20   return 0;
21 }
22