1 /* Test for the bad usage of "nonnull" function attribute parms.  */
2 /* { dg-do compile } */
3 /* { dg-options "-Wnonnull-compare" } */
4 
5 void bar (char **);
6 
7 __attribute__((nonnull (1, 3))) int
foo(char * cp1,char * cp2,char * cp3,char * cp4)8 foo (char *cp1, char *cp2, char *cp3, char *cp4)
9 {
10   if (cp1 == (char *) 0) /* { dg-warning "'nonnull' argument" "cp1 compared to NULL" } */
11     return 1;
12 
13   cp1 = cp2;
14   if (cp1 == (char *) 0) /* { dg-bogus "'nonnull' argument" } */
15     return 2;
16 
17   if (!cp4)	   /* { dg-bogus "'nonnull' argument" } */
18     return 3;
19 
20   char **p = &cp3;
21   bar (p);
22   if (cp3 == (char *) 0) /* { dg-bogus "'nonnull' argument" } */
23     return 4;
24 
25   return 5;
26 }
27