1 // RUN: %clang_cc1 -fsyntax-only -verify -Wmissing-field-initializers %s
5 struct Foo
{ int a
, b
; };
7 struct Foo foo0
= { 1 }; // expected-warning {{missing field 'b' initializer}}
8 struct Foo foo1
= { .a
= 1 }; // designator avoids MFI warning
9 struct Foo foo2
= { .b
= 1 }; // designator avoids MFI warning
13 { 1 }, // expected-warning {{missing field 'b' initializer}}
21 }; // expected-warning {{missing field 'b' initializer}}
23 struct Foo bar2
[] = { {}, {}, {} };
25 struct One
{ int a
; int b
; };
26 struct Two
{ float c
; float d
; float e
; };
39 { .two
= { 1.0f
, 2.0f
, 3.0f
} }
42 struct Three data
[] = {
43 { { .one
= { 1, 2 } } },
44 { { .one
= { 1 } } }, // expected-warning {{missing field 'b' initializer}}
45 { { .two
= { 1.0f
, 2.0f
, 3.0f
} } },
46 { { .two
= { 1.0f
, 2.0f
} } } // expected-warning {{missing field 'e' initializer}}
49 struct { int:5; int a
; int:5; int b
; int:5; } noNamedImplicit
[] = {
51 { 1 } // expected-warning {{missing field 'b' initializer}}