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
This commit is contained in:
Fariborz Jahanian 2010-02-03 21:29:28 +00:00
Родитель d9bafa76f8
Коммит 32132a08c0
2 изменённых файлов: 22 добавлений и 0 удалений

Просмотреть файл

@ -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<PointerType>()) {
if (PT->getPointeeType()->isObjCQualifiedIdType())
return true;

Просмотреть файл

@ -16,6 +16,26 @@
}
@end
// radar 7607413
@protocol Proto1, Proto2;
@protocol Proto
@end
unsigned char func(id<Proto1, Proto2> inProxy);
id bar(id);
void f() {
id a;
id b = bar((id <Proto>)a);
}
// CHECK-LP: NSConnection /*<NSPortDelegate>*/ *conn = 0;
// CHECK-LP: id /*<NSPortDelegate>*/ *idc = 0;
// CHECK-LP: func(id/*<Proto1, Proto2>*/ inProxy);
// CHECK-LP: bar((id /*<Proto>*/)a);