From: Fariborz Jahanian Date: Wed, 3 Feb 2010 21:29:28 +0000 (+0000) Subject: Fix more rewriting of protocol-quialified 'id' type. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=32132a08c0aecc316728d81e1d93726707fde14b;p=clang Fix more rewriting of protocol-quialified 'id' type. (Fixes radar 7607413). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95257 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Frontend/RewriteObjC.cpp b/lib/Frontend/RewriteObjC.cpp index 980c96ad17..9ec28bb6d4 100644 --- a/lib/Frontend/RewriteObjC.cpp +++ b/lib/Frontend/RewriteObjC.cpp @@ -1995,6 +1995,8 @@ static void scanToNextArgument(const char *&argRef) { } bool RewriteObjC::needToScanForQualifiers(QualType T) { + if (T->isObjCQualifiedIdType()) + return true; if (const PointerType *PT = T->getAs()) { if (PT->getPointeeType()->isObjCQualifiedIdType()) return true; diff --git a/test/Rewriter/rewrite-protocol-qualified.mm b/test/Rewriter/rewrite-protocol-qualified.mm index e93ddbba27..e91c3db861 100644 --- a/test/Rewriter/rewrite-protocol-qualified.mm +++ b/test/Rewriter/rewrite-protocol-qualified.mm @@ -16,6 +16,26 @@ } @end +// radar 7607413 +@protocol Proto1, Proto2; + +@protocol Proto +@end + +unsigned char func(id inProxy); + +id bar(id); + +void f() { + id a; + id b = bar((id )a); +} + // CHECK-LP: NSConnection /**/ *conn = 0; // CHECK-LP: id /**/ *idc = 0; + +// CHECK-LP: func(id/**/ inProxy); + +// CHECK-LP: bar((id /**/)a); +