summaryrefslogtreecommitdiff
path: root/test/SemaObjC/conditional-expr.m
diff options
context:
space:
mode:
Diffstat (limited to 'test/SemaObjC/conditional-expr.m')
-rw-r--r--test/SemaObjC/conditional-expr.m11
1 files changed, 11 insertions, 0 deletions
diff --git a/test/SemaObjC/conditional-expr.m b/test/SemaObjC/conditional-expr.m
index 71e108cce673..71bdb1b2d341 100644
--- a/test/SemaObjC/conditional-expr.m
+++ b/test/SemaObjC/conditional-expr.m
@@ -51,6 +51,10 @@
@end
@protocol P2
@end
+@protocol P3 <P1>
+@end
+@protocol P4 <P1>
+@end
@interface A <P0>
@end
@@ -64,6 +68,9 @@
@interface D
@end
+@interface E : A
+@end
+
void f0(id<P0> x) {
x.intProp = 1;
}
@@ -118,3 +125,7 @@ void f11(int a, id<P0> x, id<P1> y) {
void f12(int a, A<P0> *x, A<P1> *y) {
A<P1>* l0 = (a ? x : y ); // expected-warning {{incompatible pointer types initializing 'A<P1> *' with an expression of type 'A<P0> *'}}
}
+
+void f13(int a, B<P3, P0> *x, E<P0, P4> *y) {
+ int *ip = a ? x : y; // expected-warning{{expression of type 'A<P1> *'}}
+}