Yes, this appears to be related to GCC bug 53119. It goes away if you change the C declaration to {{0}}. Your options are:
Ignore the warning.
Manipulate the C code after generation to have {{0}} instead of {0} on that line using sed or the like.
Declare the array extern in Vala, and write the C definition elsewhere. (The permanent version of #2.)
Do something like struct foo { int bar; Position positions[8]; } static foo position_holder and {0} will then be initialising position_holder.bar which is fine and the warning goes away.
This warning also appears when a multi-dimensional array is treated as a linear array ( although it is still correct and the code runs perfectly ) with -Wall compiler flags set.
For example
char array[5][10][2] = {
“0”,”0″,”0″,”0″,”0″,”0″,”0″,”0″,”0″,”0″,
“1”,”1″,”1″,”1″,”1″,”1″,”1″,”1″,”1″,”1″,
“2”,”2″,”2″,”2″,”2″,”2″,”2″,”2″,”2″,”2″,
“3”,”3″,”3″,”3″,”3″,”3″,”3″,”3″,”3″,”3″,
“4”,”4″,”4″,”4″,”4″,”4″,”4″,”4″,”4″,”4″ };
This will generate the warning.
Do the following changes to remove the warnings as shown below
char array[5][10][2] = {
{“0″,”0″,”0″,”0″,”0″,”0″,”0″,”0″,”0″,”0” },
{“1″,”1″,”1″,”1″,”1″,”1″,”1″,”1″,”1″,”1”},
{“2″,”2″,”2″,”2″,”2″,”2″,”2″,”2″,”2″,”2”},
{“3″,”3″,”3″,”3″,”3″,”3″,”3″,”3″,”3″,”3”},
{“4″,”4″,”4″,”4″,”4″,”4″,”4″,”4″,”4″,”4”} };
Please do correct me if I am wrong.