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