1 /* { dg-do compile } */ 2 /* { dg-options "-O -fcf-protection" } */ 3 /* { dg-final { scan-assembler-times "endbr32" 1 { target ia32 } } } */ 4 /* { dg-final { scan-assembler-times "endbr64" 1 { target { ! ia32 } } } } */ 5 /* { dg-final { scan-assembler-times "notrack call\[ \t]+" 2 } } */ 6 7 int func (int a) __attribute__ ((nocf_check)); 8 int (*fptr) (int a) __attribute__ ((nocf_check)); 9 foo(int arg)10int foo (int arg) 11 { 12 int a, b; 13 a = func (arg); 14 b = (*fptr) (arg); 15 return a+b; 16 } 17 18 int __attribute__ ((nocf_check)) func(int arg)19func (int arg) 20 { 21 int (*fptrl) (int a) __attribute__ ((nocf_check)); 22 return arg*(*fptrl)(arg); 23 } 24