diff options
Diffstat (limited to 'test/Analysis/objc-boxing.m')
-rw-r--r-- | test/Analysis/objc-boxing.m | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/test/Analysis/objc-boxing.m b/test/Analysis/objc-boxing.m index 98310b52f49d..c23192e17e5d 100644 --- a/test/Analysis/objc-boxing.m +++ b/test/Analysis/objc-boxing.m @@ -1,4 +1,6 @@ -// RUN: %clang_cc1 -analyze -analyzer-checker=core,unix.Malloc -analyzer-store=region -verify %s +// RUN: %clang_cc1 -analyze -analyzer-checker=core,unix.Malloc,osx.cocoa.NonNilReturnValue,debug.ExprInspection -analyzer-store=region -verify %s + +void clang_analyzer_eval(int); typedef signed char BOOL; typedef long NSInteger; @@ -41,4 +43,15 @@ id const_char_pointer(int *x) { if (x) return @(3); return @(*x); // expected-warning {{Dereference of null pointer (loaded from variable 'x')}} -}
\ No newline at end of file +} + +void checkNonNil() { + clang_analyzer_eval(!!@3); // expected-warning{{TRUE}} + clang_analyzer_eval(!!@(3+4)); // expected-warning{{TRUE}} + clang_analyzer_eval(!!@(57.0)); // expected-warning{{TRUE}} + + const char *str = "abc"; + clang_analyzer_eval(!!@(str)); // expected-warning{{TRUE}} + clang_analyzer_eval(!!@__objc_yes); // expected-warning{{TRUE}} +} + |