1 /* { dg-do compile } */ 2 /* { dg-options "-Wmissing-field-initializers -std=c99" } */ 3 4 struct s { int a, b, c; }; 5 struct s s1 = { 1, 2, 3 }; 6 struct s s2 = { 1, 2 }; /* { dg-warning "(missing initializer)|(near initialization)" } */ 7 struct s s3[] = { { 1, 2 }, { 4, 5 } }; /* { dg-warning "(missing initializer)|(near initialization)" } */ 8 struct s s4[] = { 1, 2, 3, 4, 5 }; /* { dg-warning "(missing initializer)|(near initialization)" } */ 9 struct s s5[] = { 1, 2, 3, 4, 5, 6 }; 10 /* Designated initializers produce no warning. */ 11 struct s s6 = { .a = 1 }; /* { dg-bogus "missing initializer" } */ 12 /* Allow zero-initializing with "= { 0 }". */ 13 struct s s7 = { 0 }; /* { dg-bogus "missing initializer" } */ 14 struct s s8 = { 1 }; /* { dg-warning "(missing initializer)|(near initialization)" } */ 15