1 /* Test for diagnostics about excess initializers when using a macro 2 defined in a system header: 3 c/71115 - Missing warning: excess elements in struct initializer. */ 4 /* { dg-do compile } */ 5 /* { dg-options "" } */ 6 /* { dg-require-effective-target int32plus } */ 7 8 #include <stddef.h> 9 10 int* a[1] = { 11 0, 12 NULL /* { dg-warning "excess elements|near init" } */ 13 }; 14 15 const char str[1] = { 16 0, 17 NULL /* { dg-warning "excess elements|near init" } */ 18 }; 19 20 struct S { 21 int *a; 22 } s = { 23 0, 24 NULL /* { dg-warning "excess elements|near init" } */ 25 }; 26 27 struct __attribute__ ((designated_init)) S2 { 28 int *a; 29 } s2 = { 30 NULL /* { dg-warning "positional initialization|near init" } */ 31 }; 32 33 union U { 34 int *a; 35 } u = { 36 0, 37 NULL /* { dg-warning "excess elements|near init" } */ 38 }; 39 40 int __attribute__ ((vector_size (16))) ivec = { 41 0, 0, 0, 0, 42 NULL /* { dg-warning "excess elements|near init" } */ 43 }; 44 45 int* scal = { 46 0, 47 NULL /* { dg-warning "excess elements|near init" } */ 48 }; 49