title: -Wmissing-field-initializer when using designated initializers
body: <p>I'm using GCC 4.6.2 (Mingw) and compiling with <code>-Wextra</code>. I'm getting strange warnings whenever I use designated initializers. For the following code</p>
  
  <pre><code>typedef struct
  {
    int x;
    int y;
  } struct1;
  
  typedef struct
  {
    int x;
    int y;
  } struct2;
  
  typedef struct
  {
    struct1 s1;
    struct2 s2[4];
  
  } bug_struct;
  
  bug_struct bug_struct1 =
  {
    .s1.x = 1,
    .s1.y = 2,
  
    .s2[0].x = 1,
    .s2[0].y = 2,
  
    .s2[1].x = 1,
    .s2[1].y = 2,
  
    .s2[2].x = 1,
    .s2[2].y = 2,
  
    .s2[3].x = 1,
    .s2[3].y = 2,
  };
  </code></pre>
  
  <p>I get warnings</p>
  
  <pre><code>bug.c:24:3: warning: missing initializer [-Wmissing-field-initializers]
  bug.c:24:3: warning: (near initialization for 'bug_struct1.s1.y') [-Wmissing-field-initializers]
  </code></pre>
  
  <p>So what exactly is missing? I've initialized every member. Is this warning merely too blunt to work with designated initializers, am I doing something wrong, or is it a compiler bug?</p>