1 /* Verify that attribute nonnull on global and local function declarations
2 or those to pointers to functions is merged.
4 { dg-options "-Wall" } */
6 void fnonnull_local_local (void)
8 extern __attribute__ ((nonnull
)) void fnonnull1 (void*);
10 fnonnull1 (0); // { dg-warning "\\\[-Wnonnull" }
13 void gnonnull_local_local (void)
15 extern void fnonnull1 (void*);
17 fnonnull1 (0); // { dg-warning "\\\[-Wnonnull" }
21 void fnonnull_local_global (void)
23 extern __attribute__ ((nonnull
)) void fnonnull2 (void*);
25 fnonnull2 (0); // { dg-warning "\\\[-Wnonnull" }
28 extern void fnonnull2 (void*);
30 void gnonnull_local_global (void)
32 fnonnull2 (0); // { dg-warning "\\\[-Wnonnull" }
36 extern __attribute__ ((nonnull
)) void fnonnull3 (void*);
38 void fnonnull_global_local (void)
40 fnonnull3 (0); // { dg-warning "\\\[-Wnonnull" }
43 void gnonnull_global_local (void)
45 extern void fnonnull3 (void*);
47 fnonnull3 (0); // { dg-warning "\\\[-Wnonnull" }
51 void pfnonnull_local_local (void)
53 extern __attribute__ ((nonnull
)) void (*pfnonnull1
) (void*);
55 pfnonnull1 (0); // { dg-warning "\\\[-Wnonnull" }
58 void gpnonnull_local_local (void)
60 extern void (*pfnonnull1
) (void*);
62 pfnonnull1 (0); // { dg-warning "\\\[-Wnonnull" "pr?????" { xfail *-*-* } }
66 void pfnonnull_local_global (void)
68 extern __attribute__ ((nonnull
)) void (*pfnonnull2
) (void*);
70 pfnonnull2 (0); // { dg-warning "\\\[-Wnonnull" }
73 extern void (*pfnonnull2
) (void*);
75 void gpnonnull_local_global (void)
77 pfnonnull2 (0); // { dg-warning "\\\[-Wnonnull" "pr?????" { xfail *-*-* } }
81 extern __attribute__ ((nonnull
)) void (*pfnonnull3
) (void*);
83 void pfnonnull_global_local (void)
85 pfnonnull3 (0); // { dg-warning "\\\[-Wnonnull" }
88 void gpnonnull_global_local (void)
90 extern void (*pfnonnull3
) (void*);
92 pfnonnull3 (0); // { dg-warning "\\\[-Wnonnull" }