aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/Wnonnull-6.c
blob: 48f09da996f3b5d356e67c400d146cd5c4f395af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
/* Verify that attribute nonnull on global and local function declarations
   or those to pointers to functions is merged.
   { dg-do compile }
   { dg-options "-Wall" } */

void fnonnull_local_local (void)
{
  extern __attribute__ ((nonnull)) void fnonnull1 (void*);

  fnonnull1 (0);    // { dg-warning "\\\[-Wnonnull" }
}

void gnonnull_local_local (void)
{
  extern void fnonnull1 (void*);

  fnonnull1 (0);    // { dg-warning "\\\[-Wnonnull" }
}


void fnonnull_local_global (void)
{
  extern __attribute__ ((nonnull)) void fnonnull2 (void*);

  fnonnull2 (0);    // { dg-warning "\\\[-Wnonnull" }
}

extern void fnonnull2 (void*);

void gnonnull_local_global (void)
{
  fnonnull2 (0);    // { dg-warning "\\\[-Wnonnull" }
}


extern __attribute__ ((nonnull)) void fnonnull3 (void*);

void fnonnull_global_local (void)
{
  fnonnull3 (0);    // { dg-warning "\\\[-Wnonnull" }
}

void gnonnull_global_local (void)
{
  extern void fnonnull3 (void*);

  fnonnull3 (0);    // { dg-warning "\\\[-Wnonnull" }
}


void pfnonnull_local_local (void)
{
  extern __attribute__ ((nonnull)) void (*pfnonnull1) (void*);

  pfnonnull1 (0);   // { dg-warning "\\\[-Wnonnull" }
}

void gpnonnull_local_local (void)
{
  extern void (*pfnonnull1) (void*);

  pfnonnull1 (0);   // { dg-warning "\\\[-Wnonnull" "pr?????" { xfail *-*-* } }
}


void pfnonnull_local_global (void)
{
  extern __attribute__ ((nonnull)) void (*pfnonnull2) (void*);

  pfnonnull2 (0);   // { dg-warning "\\\[-Wnonnull" }
}

extern void (*pfnonnull2) (void*);

void gpnonnull_local_global (void)
{
  pfnonnull2 (0);   // { dg-warning "\\\[-Wnonnull" "pr?????" { xfail *-*-* } }
}


extern __attribute__ ((nonnull)) void (*pfnonnull3) (void*);

void pfnonnull_global_local (void)
{
  pfnonnull3 (0);   // { dg-warning "\\\[-Wnonnull" }
}

void gpnonnull_global_local (void)
{
  extern void (*pfnonnull3) (void*);

  pfnonnull3 (0);   // { dg-warning "\\\[-Wnonnull" }
}