diff options
Diffstat (limited to 'lib/AST/ASTContext.cpp')
| -rw-r--r-- | lib/AST/ASTContext.cpp | 7 | 
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp index 3b405267e8de..b36d1f3dbfa3 100644 --- a/lib/AST/ASTContext.cpp +++ b/lib/AST/ASTContext.cpp @@ -828,6 +828,13 @@ QualType ASTContext::getObjCGCQualType(QualType T,    if (CanT.getObjCGCAttr() == GCAttr)      return T; +  if (T->isPointerType()) { +    QualType Pointee = T->getAsPointerType()->getPointeeType(); +    if (Pointee->isPointerType()) { +      QualType ResultType = getObjCGCQualType(Pointee, GCAttr); +      return getPointerType(ResultType); +    } +  }    // If we are composing extended qualifiers together, merge together into one    // ExtQualType node.    unsigned CVRQuals = T.getCVRQualifiers();  | 
