зеркало из https://github.com/microsoft/clang-1.git
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:
Родитель
d9bafa76f8
Коммит
32132a08c0
|
@ -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);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче