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 3b405267e8de7..b36d1f3dbfa37 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(); |