If you enable the pragma gcc_extensions, the compiler allows the initialization of local arrays and structs with non-constant values.
void myFunc( int i, double x ) { int arr[2] = { i, i + 1 }; struct myStruct = { i, x }; }