]>
git.proxmox.com Git - rustc.git/blob - src/llvm/tools/clang/test/SemaCXX/attr-nonnull.cpp
1 // RUN: %clang_cc1 -fsyntax-only -verify %s
3 S(const char *) __attribute__((nonnull(2)));
5 static void f(const char*, const char*) __attribute__((nonnull(1)));
7 // GCC has a hidden 'this' argument in member functions, so the middle
8 // argument is the one that must not be null.
9 void g(const char*, const char*, const char*) __attribute__((nonnull(3)));
11 void h(const char*) __attribute__((nonnull(1))); // \
12 expected
-error
{{invalid
for the implicit
this argument
}}
16 S
s(0); // expected-warning{{null passed}}
18 s
.f(0, ""); // expected-warning{{null passed}}
20 s
.g("", 0, ""); // expected-warning{{null passed}}
24 namespace rdar8769025
{
25 __attribute__((nonnull
)) void f0(int *&p
);
26 __attribute__((nonnull
)) void f1(int * const &p
);
27 __attribute__((nonnull(2))) void f2(int i
, int * const &p
);
30 f1(0); // expected-warning{{null passed to a callee which requires a non-null argument}}
31 f2(0, 0); // expected-warning{{null passed to a callee which requires a non-null argument}}