The warning is produced by the c code generated by vala.
warning: missing braces around initializer
The code works but the warning is annoying. The vala code referenced by the warning is
struct Position {uint x; uint y;}
private static Position positions[8];
The generated C code is
static Position det_positions[8] = {0};
I've tried initializing positions half a dozen different ways but can't seem to get the syntax to satisfy the warning. Is this GCC bug 53119 or is there a way to fix it?
Yes, this appears to be related to GCC bug 53119. It goes away if you change the C declaration to {{0}}
. Your options are:
{{0}}
instead of {0}
on that line using sed
or the like.extern
in Vala, and write the C definition elsewhere. (The permanent version of #2.)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.