/* { dg-do run } */ /* { dg-options "-std=gnu99" } */ /* { dg-require-effective-target trampolines } */ int main() { int n = 1; char tmp[2] = { 0 }; char (*bar(void))[++n] { return &tmp; } if (2 != n) __builtin_abort(); if (2 != sizeof(*bar())) __builtin_abort(); n = 1; char (*(*bar2)(void))[++n] = bar; if (2 != n) __builtin_abort(); if (2 != sizeof(*(*bar2)())) __builtin_abort(); }