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) {
|
||||
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) {
|
||||
|
|
|
@ -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