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