1//===--- ASTContext.cpp - Context to hold long-lived AST nodes ------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// --- 814 unchanged lines hidden (view full) --- 823} 824 825QualType ASTContext::getObjCGCQualType(QualType T, 826 QualType::GCAttrTypes GCAttr) { 827 QualType CanT = getCanonicalType(T); 828 if (CanT.getObjCGCAttr() == GCAttr) 829 return T; 830 |
831 if (T->isPointerType()) { 832 QualType Pointee = T->getAsPointerType()->getPointeeType(); 833 if (Pointee->isPointerType()) { 834 QualType ResultType = getObjCGCQualType(Pointee, GCAttr); 835 return getPointerType(ResultType); 836 } 837 } |
838 // If we are composing extended qualifiers together, merge together into one 839 // ExtQualType node. 840 unsigned CVRQuals = T.getCVRQualifiers(); 841 Type *TypeNode = T.getTypePtr(); 842 unsigned AddressSpace = 0; 843 844 if (ExtQualType *EQT = dyn_cast<ExtQualType>(TypeNode)) { 845 // If this type already has an address space specified, it cannot get --- 2520 unchanged lines hidden --- |