diff options
author | George Karpenkov <ekarpenkov@apple.com> | 2017-10-13 00:51:41 +0000 |
---|---|---|
committer | George Karpenkov <ekarpenkov@apple.com> | 2017-10-13 00:51:41 +0000 |
commit | 7cd19b9e4f1ebe5da782cde760dae82113a77e22 (patch) | |
tree | 6ad4cde8492f3540da22b044ed00369605aa2f0c /test/Analysis | |
parent | 93bb48133ff0de7e60b34457ca80de26948aa26c (diff) |
[Analyzer] Assume that CFBooleanRef const globals are non-null
Differential Revision: https://reviews.llvm.org/D38867
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@315655 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Analysis')
-rw-r--r-- | test/Analysis/nonnull-global-constants.mm (renamed from test/Analysis/nonnull-string-constants.mm) | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/test/Analysis/nonnull-string-constants.mm b/test/Analysis/nonnull-global-constants.mm index 8b56f2cdc4..7900b9dd12 100644 --- a/test/Analysis/nonnull-string-constants.mm +++ b/test/Analysis/nonnull-global-constants.mm @@ -1,12 +1,13 @@ // RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ExprInspection -verify %s // Nullability of const string-like globals, testing -// NonnullStringConstantsChecker. +// NonnullGlobalConstantsChecker. void clang_analyzer_eval(bool); @class NSString; typedef const struct __CFString *CFStringRef; +typedef const struct __CFBoolean * CFBooleanRef; // Global NSString* is non-null. extern NSString *const StringConstGlobal; @@ -88,3 +89,15 @@ extern nstr2 nglobalStr2; void testNestedTypedefsForNSString() { clang_analyzer_eval(nglobalStr2); // expected-warning{{TRUE}} } + +// And for CFBooleanRefs. +extern const CFBooleanRef kBool; +void testNonnullBool() { + clang_analyzer_eval(kBool); // expected-warning{{TRUE}} +} + +// And again, only for const one. +extern CFBooleanRef kBoolMutable; +void testNonnullNonconstBool() { + clang_analyzer_eval(kBoolMutable); // expected-warning{{UNKNOWN}} +} |