1 /* Test for the invalid use of the "nonnull" function attribute. */
2 /* Origin: Jason Thorpe <thorpej@wasabisystems.com> */
3 /* { dg-do compile } */
4
5 extern void func1 () __attribute__((nonnull)); /* { dg-error "without arguments" } */
6
7 extern void func2 (char *) __attribute__((nonnull(2))); /* { dg-warning ".nonnull. attribute argument value .2. exceeds the number of function parameters 1" } */
8
9 extern void func3 (char *) __attribute__((nonnull (foo))); /* { dg-warning ".nonnull. attribute argument is invalid" } */
10 /* { dg-error ".foo. undeclared" "undeclared argument" { target *-*-* } .-1 } */
11
12 extern void func4 (int) __attribute__((nonnull(1))); /* { dg-warning ".nonnull. attribute argument value .1. refers to parameter type .int." } */
13
14 void
foo(void)15 foo (void)
16 {
17 }
18