aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGenObjCXX/msabi-objc-extensions.mm
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGenObjCXX/msabi-objc-extensions.mm')
-rw-r--r--test/CodeGenObjCXX/msabi-objc-extensions.mm31
1 files changed, 31 insertions, 0 deletions
diff --git a/test/CodeGenObjCXX/msabi-objc-extensions.mm b/test/CodeGenObjCXX/msabi-objc-extensions.mm
index 2f724a985f33..7ac3910ba471 100644
--- a/test/CodeGenObjCXX/msabi-objc-extensions.mm
+++ b/test/CodeGenObjCXX/msabi-objc-extensions.mm
@@ -4,6 +4,7 @@
@protocol Q;
@class I;
+@class J<T>;
void f(id<P>, id, id<P>, id) {}
// CHECK-LABEL: "?f@@YAXPAU?$objc_object@U?$Protocol@UP@@@__ObjC@@@@PAUobjc_object@@01@Z"
@@ -64,3 +65,33 @@ S<__autoreleasing id> g() { return S<__autoreleasing id>(); }
__autoreleasing id h() { return nullptr; }
// CHECK-LABEL: "?h@@YAPAUobjc_object@@XZ"
+
+void f(I *) {}
+// CHECK-LABEL: "?f@@YAXPAUI@@@Z"
+
+void f(__kindof I *) {}
+// CHECK-LABEL: "?f@@YAXPAU?$KindOf@UI@@@__ObjC@@@Z"
+
+void f(__kindof I<P> *) {}
+// CHECK-LABEL: "?f@@YAXPAU?$KindOf@U?$I@U?$Protocol@UP@@@__ObjC@@@@@__ObjC@@@Z"
+
+void f(S<I *>) {}
+// CHECK-LABEL: "?f@@YAXU?$S@U?$Strong@PAUI@@@__ObjC@@@@@Z"
+
+void f(S<__kindof I *>) {}
+// CHECK-LABEL: "?f@@YAXU?$S@U?$Strong@PAU?$KindOf@UI@@@__ObjC@@@__ObjC@@@@@Z"
+
+void f(S<__kindof I<P> *>) {}
+// CHECK-LABEL: "?f@@YAXU?$S@U?$Strong@PAU?$KindOf@U?$I@U?$Protocol@UP@@@__ObjC@@@@@__ObjC@@@__ObjC@@@@@Z"
+
+void f(S<__weak __kindof I *>) {}
+// CHECK-LABEL: "?f@@YAXU?$S@U?$Weak@PAU?$KindOf@UI@@@__ObjC@@@__ObjC@@@@@Z"
+
+void f(S<__weak __kindof I<P> *>) {}
+// CHECK-LABEL: "?f@@YAXU?$S@U?$Weak@PAU?$KindOf@U?$I@U?$Protocol@UP@@@__ObjC@@@@@__ObjC@@@__ObjC@@@@@Z"
+
+void f(J<I *> *) {}
+// CHECK-LABEL: "?f@@YAXPAU?$J@PAUI@@@@@Z"
+
+void f(J<__kindof I *> *) {}
+// CHECK-LABEL: "?f@@YAXPAU?$J@PAU?$KindOf@UI@@@__ObjC@@@@@Z"