aboutsummaryrefslogtreecommitdiff
path: root/test/SemaObjCXX/arc-templates.mm
diff options
context:
space:
mode:
Diffstat (limited to 'test/SemaObjCXX/arc-templates.mm')
-rw-r--r--test/SemaObjCXX/arc-templates.mm16
1 files changed, 16 insertions, 0 deletions
diff --git a/test/SemaObjCXX/arc-templates.mm b/test/SemaObjCXX/arc-templates.mm
index b3519b957372..ebede6404f90 100644
--- a/test/SemaObjCXX/arc-templates.mm
+++ b/test/SemaObjCXX/arc-templates.mm
@@ -302,3 +302,19 @@ namespace rdar14467941 {
float &fr2 = takePtr<A>(a);
}
}
+
+namespace rdar15713945 {
+ template <class T> int &f(__strong T &);
+ template <class T> float &f(__weak T &);
+ template <class T> double &f(__unsafe_unretained T &);
+ template <class T> char &f(T &);
+
+ void foo() {
+ __strong NSString * const strong = 0;
+ int &ir = (f)(strong);
+ __weak NSString * const weak = 0;
+ float &fr = (f)(weak);
+ __unsafe_unretained NSString * const unsafe = 0;
+ double &dr = (f)(unsafe);
+ }
+}