/* { dg-do compile } */ /* { dg-options "-O2" } */ struct _wincore { int width, height; }; static void foo (void *dpy, struct _wincore *winInfo, int offset) { fn1 (winInfo->height); } static void bar (void *dpy, int winInfo, int *visrgn) { ((void (*) (void *, int, int)) foo) ((void *) 0, winInfo, 0); /* { dg-warning "function called through a non-compatible type" } */ fn2 (0, 0, visrgn); } void baz (void *dpy, int win, int prop) { bar ((void *) 0, 0, (int *) 0); }