diff options
-rw-r--r-- | lib/Rewrite/RewriteObjC.cpp | 4 | ||||
-rw-r--r-- | test/Rewriter/rewrite-protocol-qualified.mm | 9 |
2 files changed, 13 insertions, 0 deletions
diff --git a/lib/Rewrite/RewriteObjC.cpp b/lib/Rewrite/RewriteObjC.cpp index dd6cf93a39..c085e6d017 100644 --- a/lib/Rewrite/RewriteObjC.cpp +++ b/lib/Rewrite/RewriteObjC.cpp @@ -2109,6 +2109,10 @@ bool RewriteObjC::needToScanForQualifiers(QualType T) { T = T->getPointeeType(); return T->isObjCQualifiedInterfaceType(); } + if (T->isArrayType()) { + QualType ElemTy = Context->getBaseElementType(T); + return needToScanForQualifiers(ElemTy); + } return false; } diff --git a/test/Rewriter/rewrite-protocol-qualified.mm b/test/Rewriter/rewrite-protocol-qualified.mm index 671aa6b08a..fae11a0adf 100644 --- a/test/Rewriter/rewrite-protocol-qualified.mm +++ b/test/Rewriter/rewrite-protocol-qualified.mm @@ -39,3 +39,12 @@ void f() { @property (retain) NSRunLoop *workRunLoop; @end + +// rdar://8475819 +@protocol some_protocol; + +void foo (int n) +{ + id<some_protocol> array[n]; +} + |