1 /* Check the attribute do not proparate through assignment. */
2 /* { dg-do compile } */
3 /* { dg-options "-O -fcf-protection -mcet" } */
4 /* { dg-final { scan-assembler-times "endbr32" 1 { target ia32 } } } */
5 /* { dg-final { scan-assembler-times "endbr64" 1 { target { ! ia32 } } } } */
6 /* { dg-final { scan-assembler-times "\tcall\[ \t]+" 1 } } */
7 /* { dg-final { scan-assembler-times "notrack call\[ \t]+" 1 } } */
9 int (*fptr
) (int) __attribute__ ((nocf_check
));
16 a
= (*fptr
) (arg
); /* non-checked call. */
18 fptr1
= fptr
; /* { dg-warning "incompatible pointer type" } */
19 a
= (*fptr1
) (arg
); /* checked call. */