1 /* { dg-do compile } */
2 /* { dg-options "-W -Wall" } */
3 
4 typedef __SIZE_TYPE__ size_t;
5 extern void* malloc (size_t);
6 extern void free (void*);
7 extern void* realloc (void*, size_t);
8 
9 struct vtable {
10   void* (* _malloc) (size_t);
11   void (* _free) (void*);
12   void* (* _realloc) (void*, size_t);
13 };
14 
15 struct vtable mtable = {
16   malloc,
17   free
18 }; /* { dg-warning "missing initializer" "warning regression" { target *-*-* } {18} } */
19    /* { dg-message "declared here" "warning regression 2" { target *-*-* } {12} } */
20 
21 /* With designated initializers, we assume you meant to leave out the
22    initialization of any blank fields.  */
23 struct vtable mtable2 = {
24   ._malloc = malloc,
25   ._realloc = realloc
26 };
27 
28 struct vtable mtable3 = {
29   ._free = free,
30   ._malloc = malloc,
31   ._realloc = realloc
32 };
33