diff options
Diffstat (limited to 'test/CodeGenObjCXX/msabi-objc-extensions.mm')
| -rw-r--r-- | test/CodeGenObjCXX/msabi-objc-extensions.mm | 31 |
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" |
