// { dg-do compile { target c++23 } } // { dg-options "-O2" } static void foo () {} struct S { void (*f) (); }; [[gnu::nonnull (1)]] void bar (void *x) { struct S a[3] = { { foo }, { foo }, { foo } }; for (struct S *i = a, *e = a + 3; i != e; i++) { [[assume (i->f)]]; i->f (); } }