// RUN: %clang_cc1 -fsyntax-only -verify -Wmissing-field-initializers %s

// This was PR4808.

struct Foo { int a, b; };

struct Foo foo0 = { 1 }; // expected-warning {{missing field 'b' initializer}}
struct Foo foo1 = { .a = 1 }; // designator avoids MFI warning
struct Foo foo2 = { .b = 1 }; // designator avoids MFI warning

struct Foo bar0[] = {
  { 1,2 },
  { 1 },   // expected-warning {{missing field 'b' initializer}}
  { 1,2 }
};

struct Foo bar1[] = {
  1, 2,
  1, 2,
  1
}; // expected-warning {{missing field 'b' initializer}}

struct Foo bar2[] = { {}, {}, {} };

struct One { int a; int b; };
struct Two { float c; float d; float e; };

struct Three {
    union {
        struct One one;
        struct Two two;
    } both;
};

struct Three t0 = {
    { .one = { 1, 2 } }
};
struct Three t1 = {
    { .two = { 1.0f, 2.0f, 3.0f } }
};

struct Three data[] = {
  { { .one = { 1, 2 } } },
  { { .one = { 1 } } }, // expected-warning {{missing field 'b' initializer}}
  { { .two = { 1.0f, 2.0f, 3.0f } } },
  { { .two = { 1.0f, 2.0f } } } // expected-warning {{missing field 'e' initializer}}
};

struct { int:5; int a; int:5; int b; int:5; } noNamedImplicit[] = {
  { 1, 2 },
  { 1 } // expected-warning {{missing field 'b' initializer}}
};
