How to repair warning: missing braces around initializer?
gcc, vala
Solution
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.
Problem
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?