diff options
| author | Steve Naroff <snaroff@apple.com> | 2009-12-04 21:18:19 +0000 |
|---|---|---|
| committer | Steve Naroff <snaroff@apple.com> | 2009-12-04 21:18:19 +0000 |
| commit | 3ce3af2cb6f41cc265e3ff179edc961156b32223 (patch) | |
| tree | 1431b52fa7b25f02dabfc245b6cbe19c8d69db29 /clang/lib | |
| parent | 9b3a395bf3805b402046f31a9cd977decb39f01d (diff) | |
| download | bcm5719-llvm-3ce3af2cb6f41cc265e3ff179edc961156b32223.tar.gz bcm5719-llvm-3ce3af2cb6f41cc265e3ff179edc961156b32223.zip | |
Integrate the following from the 'objective-rewrite' branch:
http://llvm.org/viewvc/llvm-project?view=rev&revision=70922
llvm-svn: 90595
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/Frontend/RewriteObjC.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/clang/lib/Frontend/RewriteObjC.cpp b/clang/lib/Frontend/RewriteObjC.cpp index 710fa55b69b..a1ba4b88341 100644 --- a/clang/lib/Frontend/RewriteObjC.cpp +++ b/clang/lib/Frontend/RewriteObjC.cpp @@ -1325,7 +1325,12 @@ Stmt *RewriteObjC::RewriteObjCForCollectionStmt(ObjCForCollectionStmt *S, // type elem; NamedDecl* D = cast<NamedDecl>(DS->getSingleDecl()); QualType ElementType = cast<ValueDecl>(D)->getType(); - elementTypeAsString = ElementType.getAsString(); + if (ElementType->isObjCQualifiedIdType() || + ElementType->isObjCQualifiedInterfaceType()) + // Simply use 'id' for all qualified types. + elementTypeAsString = "id"; + else + elementTypeAsString = ElementType.getAsString(); buf += elementTypeAsString; buf += " "; elementName = D->getNameAsCString(); @@ -1335,8 +1340,13 @@ Stmt *RewriteObjC::RewriteObjCForCollectionStmt(ObjCForCollectionStmt *S, else { DeclRefExpr *DR = cast<DeclRefExpr>(S->getElement()); elementName = DR->getDecl()->getNameAsCString(); - elementTypeAsString - = cast<ValueDecl>(DR->getDecl())->getType().getAsString(); + ValueDecl *VD = cast<ValueDecl>(DR->getDecl()); + if (VD->getType()->isObjCQualifiedIdType() || + VD->getType()->isObjCQualifiedInterfaceType()) + // Simply use 'id' for all qualified types. + elementTypeAsString = "id"; + else + elementTypeAsString = VD->getType().getAsString(); } // struct __objcFastEnumerationState enumState = { 0 }; |

