diff options
Diffstat (limited to 'test/Analysis/nonnull.m')
-rw-r--r-- | test/Analysis/nonnull.m | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/test/Analysis/nonnull.m b/test/Analysis/nonnull.m new file mode 100644 index 000000000000..c32a7f780ece --- /dev/null +++ b/test/Analysis/nonnull.m @@ -0,0 +1,23 @@ +// RUN: %clang_cc1 -analyze -analyzer-checker=core -verify %s + +@interface MyObject +- (void)takePointer:(void *)ptr __attribute__((nonnull(1))); +@end + +void testNonNullMethod(int *p, MyObject *obj) { + if (p) + return; + [obj takePointer:p]; // expected-warning{{nonnull}} +} + + +@interface Subclass : MyObject +// [[nonnull]] is an inherited attribute. +- (void)takePointer:(void *)ptr; +@end + +void testSubclass(int *p, Subclass *obj) { + if (p) + return; + [obj takePointer:p]; // expected-warning{{nonnull}} +} |