summaryrefslogtreecommitdiff
path: root/test/CodeGenObjC/protocols-lazy.m
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGenObjC/protocols-lazy.m')
-rw-r--r--test/CodeGenObjC/protocols-lazy.m19
1 files changed, 14 insertions, 5 deletions
diff --git a/test/CodeGenObjC/protocols-lazy.m b/test/CodeGenObjC/protocols-lazy.m
index fba7454b95498..a2dfc106d6433 100644
--- a/test/CodeGenObjC/protocols-lazy.m
+++ b/test/CodeGenObjC/protocols-lazy.m
@@ -18,7 +18,10 @@ void f0() { id x = @protocol(P2); }
// RUN: grep OBJC_PROTOCOL_P3 %t | count 3
// RUN: not grep OBJC_PROTOCOL_INSTANCE_METHODS_P3 %t
@protocol P3;
-void f1() { id x = @protocol(P3); }
+@interface UserP3<P3>
+@end
+@implementation UserP3
+@end
// Definition triggered by class reference.
// RUN: grep OBJC_PROTOCOL_P4 %t | count 3
@@ -31,10 +34,16 @@ void f1() { id x = @protocol(P3); }
// RUN: grep OBJC_PROTOCOL_P5 %t | count 3
// RUN: grep OBJC_PROTOCOL_INSTANCE_METHODS_P5 %t | count 3
@protocol P5;
-void f2() { id x = @protocol(P5); } // This generates a forward
- // reference, which has to be
- // updated on the next line.
-@protocol P5 -im1; @end
+@interface UserP5<P5> // This generates a forward
+ // reference, which has to be
+ // updated on the next line.
+@end
+@protocol P5 -im1; @end
+@implementation UserP5
+
+- im1 { }
+
+@end
// Protocol reference following definition.
// RUN: grep OBJC_PROTOCOL_P6 %t | count 4