summaryrefslogtreecommitdiffstats
path: root/clang/test/Analysis
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2010-09-10 20:20:49 +0000
committerTed Kremenek <kremenek@apple.com>2010-09-10 20:20:49 +0000
commit0a3f52361425f54d1be06033477312ebc668e034 (patch)
treeb52b0d2f1e1b0d9a241f0802e0c95d373aed1c00 /clang/test/Analysis
parentb57a127a53213938fe9e3556621275e76b95d6ed (diff)
downloadbcm5719-llvm-0a3f52361425f54d1be06033477312ebc668e034.tar.gz
bcm5719-llvm-0a3f52361425f54d1be06033477312ebc668e034.zip
Polish diagnostics for null dereferences via ObjC ivar accesses. Finishes up <rdar://problem/6352035>.
llvm-svn: 113612
Diffstat (limited to 'clang/test/Analysis')
-rw-r--r--clang/test/Analysis/misc-ps.m19
1 files changed, 19 insertions, 0 deletions
diff --git a/clang/test/Analysis/misc-ps.m b/clang/test/Analysis/misc-ps.m
index 09f397041fb..a44eb0c18d3 100644
--- a/clang/test/Analysis/misc-ps.m
+++ b/clang/test/Analysis/misc-ps.m
@@ -1110,3 +1110,22 @@ void rdar6351970_c() {
@synchronized(x) {} // expected-warning{{Uninitialized value used as mutex for @synchronized}}
}
+// <rdar://problem/6352035> rule request: direct structure member access null pointer dereference
+@interface RDar6352035 {
+ int c;
+}
+- (void)foo;
+- (void)bar;
+@end
+
+@implementation RDar6352035
+- (void)foo {
+ RDar6352035 *friend = 0;
+ friend->c = 7; // expected-warning{{Instance variable access (via 'friend') results in a null pointer dereference}}
+}
+- (void)bar {
+ self = 0;
+ c = 7; // expected-warning{{Instance variable access (via 'self') results in a null pointer dereference}}
+}
+@end
+
OpenPOWER on IntegriCloud