Fix up rewriting of protocol qualified types in objc rewriter.
Fixes radar 7589414. llvm-svn: 95097
This commit is contained in:
parent
ccdb5ff17d
commit
06769f9197
|
@ -1995,7 +1995,15 @@ static void scanToNextArgument(const char *&argRef) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool RewriteObjC::needToScanForQualifiers(QualType T) {
|
bool RewriteObjC::needToScanForQualifiers(QualType T) {
|
||||||
return T->isObjCQualifiedIdType() || T->isObjCQualifiedInterfaceType();
|
if (const PointerType *PT = T->getAs<PointerType>()) {
|
||||||
|
if (PT->getPointeeType()->isObjCQualifiedIdType())
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (T->isObjCObjectPointerType()) {
|
||||||
|
T = T->getPointeeType();
|
||||||
|
return T->isObjCQualifiedInterfaceType();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RewriteObjC::RewriteObjCQualifiedInterfaceTypes(Expr *E) {
|
void RewriteObjC::RewriteObjCQualifiedInterfaceTypes(Expr *E) {
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
// RUN: %clang_cc1 -x objective-c++ -fblocks -fms-extensions -rewrite-objc %s -o %t-rw.cpp
|
||||||
|
// RUN: FileCheck -check-prefix LP --input-file=%t-rw.cpp %s
|
||||||
|
// radar 7589414
|
||||||
|
|
||||||
|
@protocol NSPortDelegate;
|
||||||
|
@interface NSConnection @end
|
||||||
|
|
||||||
|
@interface NSMessagePort
|
||||||
|
- (void) clone;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation NSMessagePort
|
||||||
|
- (void) clone {
|
||||||
|
NSConnection <NSPortDelegate> *conn = 0;
|
||||||
|
id <NSPortDelegate> *idc = 0;
|
||||||
|
}
|
||||||
|
@end
|
||||||
|
|
||||||
|
// CHECK-LP: NSConnection /*<NSPortDelegate>*/ *conn = 0;
|
||||||
|
|
||||||
|
// CHECK-LP: id /*<NSPortDelegate>*/ *idc = 0;
|
Loading…
Reference in New Issue