summaryrefslogtreecommitdiff
path: root/test/Analysis
diff options
context:
space:
mode:
authorGeorge Karpenkov <ekarpenkov@apple.com>2017-10-13 00:51:41 +0000
committerGeorge Karpenkov <ekarpenkov@apple.com>2017-10-13 00:51:41 +0000
commit7cd19b9e4f1ebe5da782cde760dae82113a77e22 (patch)
tree6ad4cde8492f3540da22b044ed00369605aa2f0c /test/Analysis
parent93bb48133ff0de7e60b34457ca80de26948aa26c (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}}
+}