#include struct foo { int x:1; union { enum bar{ a = 1, b = 2, } t; void *(*ptr)(struct foo { int a; int b; } *array[restrict static 2]); }; } my_lovely_function(void);