1 /* { dg-do run { target cet } } */
2 /* { dg-options "-O2 -fcf-protection=branch" } */
3 
4 void callme (void (*callback) (void));
5 
6 int
main(void)7 main (void)
8 {
9   int ok = 0;
10   void callback (void) { ok = 1; }
11 
12   callme (&callback);
13 
14   if (!ok)
15    __builtin_abort ();
16   return 0;
17 }
18 
19 __attribute__((noinline, noclone))
20 void
callme(void (* callback)(void))21 callme (void (*callback) (void))
22 {
23   (*callback) ();
24 }
25