aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Rewrite/RewriteObjC.cpp4
-rw-r--r--test/Rewriter/rewrite-protocol-qualified.mm9
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];
+}
+