aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2010-09-30 20:41:32 +0000
committerFariborz Jahanian <fjahanian@apple.com>2010-09-30 20:41:32 +0000
commit24f9cab9288368171caaef4bb18b95e4f6083f22 (patch)
tree03809b51a8c0afbe6e7ceed001af8f87cf60d047
parent6edc8001f2c2f5a95ed29259d8f2c0b9faa4bc83 (diff)
Rewriting array element type of qualified-id.
Fixes rdra://8475819. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115201 91177308-0d34-0410-b5e6-96231b3b80d8
-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];
+}
+