summaryrefslogtreecommitdiffstats
path: root/test/Analysis/misc-ps-region-store.mm
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2012-02-18 21:27:25 +0000
committerTed Kremenek <kremenek@apple.com>2012-02-18 21:27:25 +0000
commit5550a2f4d5493864d1b80ec64b72ee59cfdccdac (patch)
tree928ff17534e6d17f8b33d0c4e4d2240dba0e7a29 /test/Analysis/misc-ps-region-store.mm
parentdfb80ded6767f7b79a0f1fa4f6921d543ff0a643 (diff)
Add analyzer test for using of C++ references with ObjC object pointers, reported in <rdar://problem/10569024>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150891 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Analysis/misc-ps-region-store.mm')
-rw-r--r--test/Analysis/misc-ps-region-store.mm17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/Analysis/misc-ps-region-store.mm b/test/Analysis/misc-ps-region-store.mm
index fee9433dac..8615c6a9c7 100644
--- a/test/Analysis/misc-ps-region-store.mm
+++ b/test/Analysis/misc-ps-region-store.mm
@@ -29,3 +29,20 @@ char Test1_harness_b(Test1 *p) {
return [p foo];
}
+// Basic test of C++ references with Objective-C pointers.
+@interface RDar10569024
+@property(readonly) int x;
+@end
+
+typedef RDar10569024* RDar10569024Ref;
+
+void rdar10569024_aux(RDar10569024Ref o);
+
+int rdar10569024(id p, id collection) {
+ for (id elem in collection) {
+ const RDar10569024Ref &o = (RDar10569024Ref) elem;
+ rdar10569024_aux(o); // no-warning
+ return o.x; // no-warning
+ }
+ return 0;
+}