Lines Matching refs:D
192 FindExistingResult findExisting(NamedDecl *D);
203 static void attachPreviousDecl(Decl *D, Decl *previous);
204 static void attachLatestDecl(Decl *D, Decl *latest);
206 void Visit(Decl *D);
208 void UpdateDecl(Decl *D, ModuleFile &ModuleFile,
216 void VisitDecl(Decl *D);
220 void VisitNamespaceDecl(NamespaceDecl *D);
221 void VisitUsingDirectiveDecl(UsingDirectiveDecl *D);
222 void VisitNamespaceAliasDecl(NamespaceAliasDecl *D);
227 void VisitUnresolvedUsingTypenameDecl(UnresolvedUsingTypenameDecl *D);
231 void VisitCXXRecordDecl(CXXRecordDecl *D);
233 ClassTemplateSpecializationDecl *D);
235 ClassTemplatePartialSpecializationDecl *D);
237 ClassScopeFunctionSpecializationDecl *D);
238 void VisitTemplateTypeParmDecl(TemplateTypeParmDecl *D);
241 void VisitUnresolvedUsingValueDecl(UnresolvedUsingValueDecl *D);
244 void VisitCXXMethodDecl(CXXMethodDecl *D);
245 void VisitCXXConstructorDecl(CXXConstructorDecl *D);
246 void VisitCXXDestructorDecl(CXXDestructorDecl *D);
247 void VisitCXXConversionDecl(CXXConversionDecl *D);
253 void VisitNonTypeTemplateParmDecl(NonTypeTemplateParmDecl *D);
254 void VisitTemplateDecl(TemplateDecl *D);
255 RedeclarableResult VisitRedeclarableTemplateDecl(RedeclarableTemplateDecl *D);
256 void VisitClassTemplateDecl(ClassTemplateDecl *D);
257 void VisitFunctionTemplateDecl(FunctionTemplateDecl *D);
258 void VisitTemplateTemplateParmDecl(TemplateTemplateParmDecl *D);
259 void VisitTypeAliasTemplateDecl(TypeAliasTemplateDecl *D);
260 void VisitUsingDecl(UsingDecl *D);
261 void VisitUsingShadowDecl(UsingShadowDecl *D);
262 void VisitLinkageSpecDecl(LinkageSpecDecl *D);
264 void VisitImportDecl(ImportDecl *D);
265 void VisitAccessSpecDecl(AccessSpecDecl *D);
266 void VisitFriendDecl(FriendDecl *D);
267 void VisitFriendTemplateDecl(FriendTemplateDecl *D);
268 void VisitStaticAssertDecl(StaticAssertDecl *D);
274 RedeclarableResult VisitRedeclarable(Redeclarable<T> *D);
277 void mergeRedeclarable(Redeclarable<T> *D, RedeclarableResult &Redecl);
280 void VisitObjCMethodDecl(ObjCMethodDecl *D);
281 void VisitObjCContainerDecl(ObjCContainerDecl *D);
282 void VisitObjCInterfaceDecl(ObjCInterfaceDecl *D);
283 void VisitObjCIvarDecl(ObjCIvarDecl *D);
284 void VisitObjCProtocolDecl(ObjCProtocolDecl *D);
285 void VisitObjCAtDefsFieldDecl(ObjCAtDefsFieldDecl *D);
286 void VisitObjCCategoryDecl(ObjCCategoryDecl *D);
287 void VisitObjCImplDecl(ObjCImplDecl *D);
288 void VisitObjCCategoryImplDecl(ObjCCategoryImplDecl *D);
289 void VisitObjCImplementationDecl(ObjCImplementationDecl *D);
290 void VisitObjCCompatibleAliasDecl(ObjCCompatibleAliasDecl *D);
291 void VisitObjCPropertyDecl(ObjCPropertyDecl *D);
292 void VisitObjCPropertyImplDecl(ObjCPropertyImplDecl *D);
300 void ASTDeclReader::Visit(Decl *D) { in Visit() argument
301 DeclVisitor<ASTDeclReader, void>::Visit(D); in Visit()
303 if (DeclaratorDecl *DD = dyn_cast<DeclaratorDecl>(D)) { in Visit()
315 if (TypeDecl *TD = dyn_cast<TypeDecl>(D)) { in Visit()
318 } else if (ObjCInterfaceDecl *ID = dyn_cast<ObjCInterfaceDecl>(D)) { in Visit()
321 } else if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) { in Visit()
325 } else if (D->isTemplateParameter()) { in Visit()
332 D->setDeclContextsImpl(SemaDC, LexicalDC, Reader.getContext()); in Visit()
336 void ASTDeclReader::VisitDecl(Decl *D) { in VisitDecl() argument
337 if (D->isTemplateParameter()) { in VisitDecl()
344 D->setDeclContext(Reader.getContext().getTranslationUnitDecl()); in VisitDecl()
350 D->setDeclContextsImpl(SemaDC, LexicalDC, Reader.getContext()); in VisitDecl()
352 D->setLocation(Reader.ReadSourceLocation(F, RawLocation)); in VisitDecl()
353 D->setInvalidDecl(Record[Idx++]); in VisitDecl()
359 D->setAttrsImpl(Attrs, Reader.getContext()); in VisitDecl()
361 D->setImplicit(Record[Idx++]); in VisitDecl()
362 D->setUsed(Record[Idx++]); in VisitDecl()
363 D->setReferenced(Record[Idx++]); in VisitDecl()
364 D->setTopLevelDeclInObjCContainer(Record[Idx++]); in VisitDecl()
365 D->setAccess((AccessSpecifier)Record[Idx++]); in VisitDecl()
366 D->FromASTFile = true; in VisitDecl()
367 D->setModulePrivate(Record[Idx++]); in VisitDecl()
368 D->Hidden = D->isModulePrivate(); in VisitDecl()
374 D->setOwningModuleID(SubmoduleID); in VisitDecl()
377 if (!D->isModulePrivate()) { in VisitDecl()
381 D->Hidden = true; in VisitDecl()
385 Reader.HiddenNamesMap[Owner].push_back(D); in VisitDecl()
808 void ASTDeclReader::VisitObjCPropertyDecl(ObjCPropertyDecl *D) { in VisitObjCPropertyDecl() argument
809 VisitNamedDecl(D); in VisitObjCPropertyDecl()
810 D->setAtLoc(ReadSourceLocation(Record, Idx)); in VisitObjCPropertyDecl()
811 D->setLParenLoc(ReadSourceLocation(Record, Idx)); in VisitObjCPropertyDecl()
812 D->setType(GetTypeSourceInfo(Record, Idx)); in VisitObjCPropertyDecl()
814 D->setPropertyAttributes( in VisitObjCPropertyDecl()
816 D->setPropertyAttributesAsWritten( in VisitObjCPropertyDecl()
819 D->setPropertyImplementation( in VisitObjCPropertyDecl()
821 D->setGetterName(Reader.ReadDeclarationName(F,Record, Idx).getObjCSelector()); in VisitObjCPropertyDecl()
822 D->setSetterName(Reader.ReadDeclarationName(F,Record, Idx).getObjCSelector()); in VisitObjCPropertyDecl()
823 D->setGetterMethodDecl(ReadDeclAs<ObjCMethodDecl>(Record, Idx)); in VisitObjCPropertyDecl()
824 D->setSetterMethodDecl(ReadDeclAs<ObjCMethodDecl>(Record, Idx)); in VisitObjCPropertyDecl()
825 D->setPropertyIvarDecl(ReadDeclAs<ObjCIvarDecl>(Record, Idx)); in VisitObjCPropertyDecl()
828 void ASTDeclReader::VisitObjCImplDecl(ObjCImplDecl *D) { in VisitObjCImplDecl() argument
829 VisitObjCContainerDecl(D); in VisitObjCImplDecl()
830 D->setClassInterface(ReadDeclAs<ObjCInterfaceDecl>(Record, Idx)); in VisitObjCImplDecl()
833 void ASTDeclReader::VisitObjCCategoryImplDecl(ObjCCategoryImplDecl *D) { in VisitObjCCategoryImplDecl() argument
834 VisitObjCImplDecl(D); in VisitObjCCategoryImplDecl()
835 D->setIdentifier(Reader.GetIdentifierInfo(F, Record, Idx)); in VisitObjCCategoryImplDecl()
836 D->CategoryNameLoc = ReadSourceLocation(Record, Idx); in VisitObjCCategoryImplDecl()
839 void ASTDeclReader::VisitObjCImplementationDecl(ObjCImplementationDecl *D) { in VisitObjCImplementationDecl() argument
840 VisitObjCImplDecl(D); in VisitObjCImplementationDecl()
841 D->setSuperClass(ReadDeclAs<ObjCInterfaceDecl>(Record, Idx)); in VisitObjCImplementationDecl()
842 D->setIvarLBraceLoc(ReadSourceLocation(Record, Idx)); in VisitObjCImplementationDecl()
843 D->setIvarRBraceLoc(ReadSourceLocation(Record, Idx)); in VisitObjCImplementationDecl()
844 llvm::tie(D->IvarInitializers, D->NumIvarInitializers) in VisitObjCImplementationDecl()
846 D->setHasSynthBitfield(Record[Idx++]); in VisitObjCImplementationDecl()
850 void ASTDeclReader::VisitObjCPropertyImplDecl(ObjCPropertyImplDecl *D) { in VisitObjCPropertyImplDecl() argument
851 VisitDecl(D); in VisitObjCPropertyImplDecl()
852 D->setAtLoc(ReadSourceLocation(Record, Idx)); in VisitObjCPropertyImplDecl()
853 D->setPropertyDecl(ReadDeclAs<ObjCPropertyDecl>(Record, Idx)); in VisitObjCPropertyImplDecl()
854 D->PropertyIvarDecl = ReadDeclAs<ObjCIvarDecl>(Record, Idx); in VisitObjCPropertyImplDecl()
855 D->IvarLoc = ReadSourceLocation(Record, Idx); in VisitObjCPropertyImplDecl()
856 D->setGetterCXXConstructor(Reader.ReadExpr(F)); in VisitObjCPropertyImplDecl()
857 D->setSetterCXXAssignment(Reader.ReadExpr(F)); in VisitObjCPropertyImplDecl()
980 void ASTDeclReader::VisitLinkageSpecDecl(LinkageSpecDecl *D) { in VisitLinkageSpecDecl() argument
981 VisitDecl(D); in VisitLinkageSpecDecl()
982 D->setLanguage((LinkageSpecDecl::LanguageIDs)Record[Idx++]); in VisitLinkageSpecDecl()
983 D->setExternLoc(ReadSourceLocation(Record, Idx)); in VisitLinkageSpecDecl()
984 D->setRBraceLoc(ReadSourceLocation(Record, Idx)); in VisitLinkageSpecDecl()
987 void ASTDeclReader::VisitLabelDecl(LabelDecl *D) { in VisitLabelDecl() argument
988 VisitNamedDecl(D); in VisitLabelDecl()
989 D->setLocStart(ReadSourceLocation(Record, Idx)); in VisitLabelDecl()
993 void ASTDeclReader::VisitNamespaceDecl(NamespaceDecl *D) { in VisitNamespaceDecl() argument
994 RedeclarableResult Redecl = VisitRedeclarable(D); in VisitNamespaceDecl()
995 VisitNamedDecl(D); in VisitNamespaceDecl()
996 D->setInline(Record[Idx++]); in VisitNamespaceDecl()
997 D->LocStart = ReadSourceLocation(Record, Idx); in VisitNamespaceDecl()
998 D->RBraceLoc = ReadSourceLocation(Record, Idx); in VisitNamespaceDecl()
999 mergeRedeclarable(D, Redecl); in VisitNamespaceDecl()
1007 D->setAnonymousNamespace(Anon); in VisitNamespaceDecl()
1011 D->AnonOrFirstNamespaceAndInline.setPointer(D->getFirstDeclaration()); in VisitNamespaceDecl()
1015 void ASTDeclReader::VisitNamespaceAliasDecl(NamespaceAliasDecl *D) { in VisitNamespaceAliasDecl() argument
1016 VisitNamedDecl(D); in VisitNamespaceAliasDecl()
1017 D->NamespaceLoc = ReadSourceLocation(Record, Idx); in VisitNamespaceAliasDecl()
1018 D->IdentLoc = ReadSourceLocation(Record, Idx); in VisitNamespaceAliasDecl()
1019 D->QualifierLoc = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx); in VisitNamespaceAliasDecl()
1020 D->Namespace = ReadDeclAs<NamedDecl>(Record, Idx); in VisitNamespaceAliasDecl()
1023 void ASTDeclReader::VisitUsingDecl(UsingDecl *D) { in VisitUsingDecl() argument
1024 VisitNamedDecl(D); in VisitUsingDecl()
1025 D->setUsingLocation(ReadSourceLocation(Record, Idx)); in VisitUsingDecl()
1026 D->QualifierLoc = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx); in VisitUsingDecl()
1027 ReadDeclarationNameLoc(D->DNLoc, D->getDeclName(), Record, Idx); in VisitUsingDecl()
1028 D->FirstUsingShadow.setPointer(ReadDeclAs<UsingShadowDecl>(Record, Idx)); in VisitUsingDecl()
1029 D->setTypeName(Record[Idx++]); in VisitUsingDecl()
1031 Reader.getContext().setInstantiatedFromUsingDecl(D, Pattern); in VisitUsingDecl()
1034 void ASTDeclReader::VisitUsingShadowDecl(UsingShadowDecl *D) { in VisitUsingShadowDecl() argument
1035 VisitNamedDecl(D); in VisitUsingShadowDecl()
1036 D->setTargetDecl(ReadDeclAs<NamedDecl>(Record, Idx)); in VisitUsingShadowDecl()
1037 D->UsingOrNextShadow = ReadDeclAs<NamedDecl>(Record, Idx); in VisitUsingShadowDecl()
1040 Reader.getContext().setInstantiatedFromUsingShadowDecl(D, Pattern); in VisitUsingShadowDecl()
1043 void ASTDeclReader::VisitUsingDirectiveDecl(UsingDirectiveDecl *D) { in VisitUsingDirectiveDecl() argument
1044 VisitNamedDecl(D); in VisitUsingDirectiveDecl()
1045 D->UsingLoc = ReadSourceLocation(Record, Idx); in VisitUsingDirectiveDecl()
1046 D->NamespaceLoc = ReadSourceLocation(Record, Idx); in VisitUsingDirectiveDecl()
1047 D->QualifierLoc = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx); in VisitUsingDirectiveDecl()
1048 D->NominatedNamespace = ReadDeclAs<NamedDecl>(Record, Idx); in VisitUsingDirectiveDecl()
1049 D->CommonAncestor = ReadDeclAs<DeclContext>(Record, Idx); in VisitUsingDirectiveDecl()
1052 void ASTDeclReader::VisitUnresolvedUsingValueDecl(UnresolvedUsingValueDecl *D) { in VisitUnresolvedUsingValueDecl() argument
1053 VisitValueDecl(D); in VisitUnresolvedUsingValueDecl()
1054 D->setUsingLoc(ReadSourceLocation(Record, Idx)); in VisitUnresolvedUsingValueDecl()
1055 D->QualifierLoc = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx); in VisitUnresolvedUsingValueDecl()
1056 ReadDeclarationNameLoc(D->DNLoc, D->getDeclName(), Record, Idx); in VisitUnresolvedUsingValueDecl()
1060 UnresolvedUsingTypenameDecl *D) { in VisitUnresolvedUsingTypenameDecl() argument
1061 VisitTypeDecl(D); in VisitUnresolvedUsingTypenameDecl()
1062 D->TypenameLocation = ReadSourceLocation(Record, Idx); in VisitUnresolvedUsingTypenameDecl()
1063 D->QualifierLoc = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx); in VisitUnresolvedUsingTypenameDecl()
1149 void ASTDeclReader::VisitCXXRecordDecl(CXXRecordDecl *D) { in VisitCXXRecordDecl() argument
1150 VisitRecordDecl(D); in VisitCXXRecordDecl()
1158 D->DefinitionData = new (C) CXXRecordDecl::LambdaDefinitionData(D, false); in VisitCXXRecordDecl()
1160 D->DefinitionData = new (C) struct CXXRecordDecl::DefinitionData(D); in VisitCXXRecordDecl()
1165 D->getCanonicalDecl()->DefinitionData = D->DefinitionData; in VisitCXXRecordDecl()
1167 ReadCXXDefinitionData(*D->DefinitionData, Record, Idx); in VisitCXXRecordDecl()
1172 Reader.PendingDefinitions.insert(D); in VisitCXXRecordDecl()
1175 D->DefinitionData = D->getCanonicalDecl()->DefinitionData; in VisitCXXRecordDecl()
1185 D->TemplateOrInstantiation = ReadDeclAs<ClassTemplateDecl>(Record, Idx); in VisitCXXRecordDecl()
1193 D->TemplateOrInstantiation = MSI; in VisitCXXRecordDecl()
1200 if (D->IsCompleteDefinition) { in VisitCXXRecordDecl()
1202 C.KeyFunctions[D] = Key; in VisitCXXRecordDecl()
1206 void ASTDeclReader::VisitCXXMethodDecl(CXXMethodDecl *D) { in VisitCXXMethodDecl() argument
1207 VisitFunctionDecl(D); in VisitCXXMethodDecl()
1213 Reader.getContext().addOverriddenMethod(D, MD); in VisitCXXMethodDecl()
1217 void ASTDeclReader::VisitCXXConstructorDecl(CXXConstructorDecl *D) { in VisitCXXConstructorDecl() argument
1218 VisitCXXMethodDecl(D); in VisitCXXConstructorDecl()
1220 D->IsExplicitSpecified = Record[Idx++]; in VisitCXXConstructorDecl()
1221 D->ImplicitlyDefined = Record[Idx++]; in VisitCXXConstructorDecl()
1222 llvm::tie(D->CtorInitializers, D->NumCtorInitializers) in VisitCXXConstructorDecl()
1226 void ASTDeclReader::VisitCXXDestructorDecl(CXXDestructorDecl *D) { in VisitCXXDestructorDecl() argument
1227 VisitCXXMethodDecl(D); in VisitCXXDestructorDecl()
1229 D->ImplicitlyDefined = Record[Idx++]; in VisitCXXDestructorDecl()
1230 D->OperatorDelete = ReadDeclAs<FunctionDecl>(Record, Idx); in VisitCXXDestructorDecl()
1233 void ASTDeclReader::VisitCXXConversionDecl(CXXConversionDecl *D) { in VisitCXXConversionDecl() argument
1234 VisitCXXMethodDecl(D); in VisitCXXConversionDecl()
1235 D->IsExplicitSpecified = Record[Idx++]; in VisitCXXConversionDecl()
1238 void ASTDeclReader::VisitImportDecl(ImportDecl *D) { in VisitImportDecl() argument
1239 VisitDecl(D); in VisitImportDecl()
1240 D->ImportedAndComplete.setPointer(readModule(Record, Idx)); in VisitImportDecl()
1241 D->ImportedAndComplete.setInt(Record[Idx++]); in VisitImportDecl()
1242 SourceLocation *StoredLocs = reinterpret_cast<SourceLocation *>(D + 1); in VisitImportDecl()
1248 void ASTDeclReader::VisitAccessSpecDecl(AccessSpecDecl *D) { in VisitAccessSpecDecl() argument
1249 VisitDecl(D); in VisitAccessSpecDecl()
1250 D->setColonLoc(ReadSourceLocation(Record, Idx)); in VisitAccessSpecDecl()
1253 void ASTDeclReader::VisitFriendDecl(FriendDecl *D) { in VisitFriendDecl() argument
1254 VisitDecl(D); in VisitFriendDecl()
1256 D->Friend = GetTypeSourceInfo(Record, Idx); in VisitFriendDecl()
1258 D->Friend = ReadDeclAs<NamedDecl>(Record, Idx); in VisitFriendDecl()
1259 D->NextFriend = Record[Idx++]; in VisitFriendDecl()
1260 D->UnsupportedFriend = (Record[Idx++] != 0); in VisitFriendDecl()
1261 D->FriendLoc = ReadSourceLocation(Record, Idx); in VisitFriendDecl()
1264 void ASTDeclReader::VisitFriendTemplateDecl(FriendTemplateDecl *D) { in VisitFriendTemplateDecl() argument
1265 VisitDecl(D); in VisitFriendTemplateDecl()
1267 D->NumParams = NumParams; in VisitFriendTemplateDecl()
1268 D->Params = new TemplateParameterList*[NumParams]; in VisitFriendTemplateDecl()
1270 D->Params[i] = Reader.ReadTemplateParameterList(F, Record, Idx); in VisitFriendTemplateDecl()
1272 D->Friend = ReadDeclAs<NamedDecl>(Record, Idx); in VisitFriendTemplateDecl()
1274 D->Friend = GetTypeSourceInfo(Record, Idx); in VisitFriendTemplateDecl()
1275 D->FriendLoc = ReadSourceLocation(Record, Idx); in VisitFriendTemplateDecl()
1278 void ASTDeclReader::VisitTemplateDecl(TemplateDecl *D) { in VisitTemplateDecl() argument
1279 VisitNamedDecl(D); in VisitTemplateDecl()
1284 D->init(TemplatedDecl, TemplateParams); in VisitTemplateDecl()
1288 ASTDeclReader::VisitRedeclarableTemplateDecl(RedeclarableTemplateDecl *D) { in VisitRedeclarableTemplateDecl() argument
1289 RedeclarableResult Redecl = VisitRedeclarable(D); in VisitRedeclarableTemplateDecl()
1293 RedeclarableTemplateDecl *CanonD = D->getCanonicalDecl(); in VisitRedeclarableTemplateDecl()
1298 D->Common = CanonD->Common; in VisitRedeclarableTemplateDecl()
1305 assert(RTD->getKind() == D->getKind() && in VisitRedeclarableTemplateDecl()
1307 D->setInstantiatedFromMemberTemplate(RTD); in VisitRedeclarableTemplateDecl()
1309 D->setMemberSpecialization(); in VisitRedeclarableTemplateDecl()
1313 VisitTemplateDecl(D); in VisitRedeclarableTemplateDecl()
1314 D->IdentifierNamespace = Record[Idx++]; in VisitRedeclarableTemplateDecl()
1319 void ASTDeclReader::VisitClassTemplateDecl(ClassTemplateDecl *D) { in VisitClassTemplateDecl() argument
1320 RedeclarableResult Redecl = VisitRedeclarableTemplateDecl(D); in VisitClassTemplateDecl()
1343 ClassTemplateDecl::Common *CommonPtr = D->getCommonPtr(); in VisitClassTemplateDecl()
1356 ClassTemplateSpecializationDecl *D) { in VisitClassTemplateSpecializationDecl() argument
1357 VisitCXXRecordDecl(D); in VisitClassTemplateSpecializationDecl()
1362 D->SpecializedTemplate = CTD; in VisitClassTemplateSpecializationDecl()
1375 D->SpecializedTemplate = PS; in VisitClassTemplateSpecializationDecl()
1386 D->ExplicitInfo = ExplicitInfo; in VisitClassTemplateSpecializationDecl()
1391 D->TemplateArgs = TemplateArgumentList::CreateCopy(C, TemplArgs.data(), in VisitClassTemplateSpecializationDecl()
1393 D->PointOfInstantiation = ReadSourceLocation(Record, Idx); in VisitClassTemplateSpecializationDecl()
1394 D->SpecializationKind = (TemplateSpecializationKind)Record[Idx++]; in VisitClassTemplateSpecializationDecl()
1396 if (D->isCanonicalDecl()) { // It's kept in the folding set. in VisitClassTemplateSpecializationDecl()
1399 = dyn_cast<ClassTemplatePartialSpecializationDecl>(D)) { in VisitClassTemplateSpecializationDecl()
1402 CanonPattern->getCommonPtr()->Specializations.InsertNode(D); in VisitClassTemplateSpecializationDecl()
1408 ClassTemplatePartialSpecializationDecl *D) { in VisitClassTemplatePartialSpecializationDecl() argument
1409 VisitClassTemplateSpecializationDecl(D); in VisitClassTemplatePartialSpecializationDecl()
1412 D->TemplateParams = Reader.ReadTemplateParameterList(F, Record, Idx); in VisitClassTemplatePartialSpecializationDecl()
1416 D->NumArgsAsWritten = NumArgs; in VisitClassTemplatePartialSpecializationDecl()
1417 D->ArgsAsWritten = new (C) TemplateArgumentLoc[NumArgs]; in VisitClassTemplatePartialSpecializationDecl()
1419 D->ArgsAsWritten[i] = Reader.ReadTemplateArgumentLoc(F, Record, Idx); in VisitClassTemplatePartialSpecializationDecl()
1422 D->SequenceNumber = Record[Idx++]; in VisitClassTemplatePartialSpecializationDecl()
1425 if (D->getPreviousDecl() == 0) { in VisitClassTemplatePartialSpecializationDecl()
1426 D->InstantiatedFromMember.setPointer( in VisitClassTemplatePartialSpecializationDecl()
1428 D->InstantiatedFromMember.setInt(Record[Idx++]); in VisitClassTemplatePartialSpecializationDecl()
1433 ClassScopeFunctionSpecializationDecl *D) { in VisitClassScopeFunctionSpecializationDecl() argument
1434 VisitDecl(D); in VisitClassScopeFunctionSpecializationDecl()
1435 D->Specialization = ReadDeclAs<CXXMethodDecl>(Record, Idx); in VisitClassScopeFunctionSpecializationDecl()
1438 void ASTDeclReader::VisitFunctionTemplateDecl(FunctionTemplateDecl *D) { in VisitFunctionTemplateDecl() argument
1439 RedeclarableResult Redecl = VisitRedeclarableTemplateDecl(D); in VisitFunctionTemplateDecl()
1453 void ASTDeclReader::VisitTemplateTypeParmDecl(TemplateTypeParmDecl *D) { in VisitTemplateTypeParmDecl() argument
1454 VisitTypeDecl(D); in VisitTemplateTypeParmDecl()
1456 D->setDeclaredWithTypename(Record[Idx++]); in VisitTemplateTypeParmDecl()
1460 D->setDefaultArgument(DefArg, Inherited); in VisitTemplateTypeParmDecl()
1463 void ASTDeclReader::VisitNonTypeTemplateParmDecl(NonTypeTemplateParmDecl *D) { in VisitNonTypeTemplateParmDecl() argument
1464 VisitDeclaratorDecl(D); in VisitNonTypeTemplateParmDecl()
1466 D->setDepth(Record[Idx++]); in VisitNonTypeTemplateParmDecl()
1467 D->setPosition(Record[Idx++]); in VisitNonTypeTemplateParmDecl()
1468 if (D->isExpandedParameterPack()) { in VisitNonTypeTemplateParmDecl()
1469 void **Data = reinterpret_cast<void **>(D + 1); in VisitNonTypeTemplateParmDecl()
1470 for (unsigned I = 0, N = D->getNumExpansionTypes(); I != N; ++I) { in VisitNonTypeTemplateParmDecl()
1476 D->ParameterPack = Record[Idx++]; in VisitNonTypeTemplateParmDecl()
1480 D->setDefaultArgument(DefArg, Inherited); in VisitNonTypeTemplateParmDecl()
1485 void ASTDeclReader::VisitTemplateTemplateParmDecl(TemplateTemplateParmDecl *D) { in VisitTemplateTemplateParmDecl() argument
1486 VisitTemplateDecl(D); in VisitTemplateTemplateParmDecl()
1488 D->setDepth(Record[Idx++]); in VisitTemplateTemplateParmDecl()
1489 D->setPosition(Record[Idx++]); in VisitTemplateTemplateParmDecl()
1493 D->setDefaultArgument(Arg, IsInherited); in VisitTemplateTemplateParmDecl()
1494 D->ParameterPack = Record[Idx++]; in VisitTemplateTemplateParmDecl()
1497 void ASTDeclReader::VisitTypeAliasTemplateDecl(TypeAliasTemplateDecl *D) { in VisitTypeAliasTemplateDecl() argument
1498 VisitRedeclarableTemplateDecl(D); in VisitTypeAliasTemplateDecl()
1501 void ASTDeclReader::VisitStaticAssertDecl(StaticAssertDecl *D) { in VisitStaticAssertDecl() argument
1502 VisitDecl(D); in VisitStaticAssertDecl()
1503 D->AssertExpr = Reader.ReadExpr(F); in VisitStaticAssertDecl()
1504 D->Message = cast<StringLiteral>(Reader.ReadExpr(F)); in VisitStaticAssertDecl()
1505 D->RParenLoc = ReadSourceLocation(Record, Idx); in VisitStaticAssertDecl()
1517 ASTDeclReader::VisitRedeclarable(Redeclarable<T> *D) { in VisitRedeclarable() argument
1526 if (FirstDecl != D) { in VisitRedeclarable()
1531 D->RedeclLink = typename Redeclarable<T>::PreviousDeclLink(FirstDecl); in VisitRedeclarable()
1535 Reader.RedeclsDeserialized.insert(static_cast<T *>(D)); in VisitRedeclarable()
1545 void ASTDeclReader::mergeRedeclarable(Redeclarable<T> *D, in mergeRedeclarable() argument
1551 if (FindExistingResult ExistingRes = findExisting(static_cast<T*>(D))) { in mergeRedeclarable()
1554 T *DCanon = static_cast<T*>(D)->getCanonicalDecl(); in mergeRedeclarable()
1559 D->RedeclLink in mergeRedeclarable()
1564 = dyn_cast<NamespaceDecl>(static_cast<T*>(D))) { in mergeRedeclarable()
1584 if (DCanon == static_cast<T*>(D)) { in mergeRedeclarable()
1632 inline void ASTReader::LoadedDecl(unsigned Index, Decl *D) { in LoadedDecl() argument
1634 DeclsLoaded[Index] = D; in LoadedDecl()
1644 static bool isConsumerInterestedIn(Decl *D) { in isConsumerInterestedIn() argument
1648 if (isa<FileScopeAsmDecl>(D) || in isConsumerInterestedIn()
1649 isa<ObjCProtocolDecl>(D) || in isConsumerInterestedIn()
1650 isa<ObjCImplDecl>(D)) in isConsumerInterestedIn()
1652 if (VarDecl *Var = dyn_cast<VarDecl>(D)) in isConsumerInterestedIn()
1655 if (FunctionDecl *Func = dyn_cast<FunctionDecl>(D)) in isConsumerInterestedIn()
1765 ASTDeclReader::FindExistingResult ASTDeclReader::findExisting(NamedDecl *D) { in findExisting() argument
1766 DeclarationName Name = D->getDeclName(); in findExisting()
1769 FindExistingResult Result(Reader, D, /*Existing=*/0); in findExisting()
1774 DeclContext *DC = D->getDeclContext()->getRedeclContext(); in findExisting()
1783 if (isSameEntity(*I, D)) in findExisting()
1784 return FindExistingResult(Reader, D, *I); in findExisting()
1791 if (isSameEntity(*R.first, D)) in findExisting()
1792 return FindExistingResult(Reader, D, *R.first); in findExisting()
1796 return FindExistingResult(Reader, D, /*Existing=*/0); in findExisting()
1799 void ASTDeclReader::attachPreviousDecl(Decl *D, Decl *previous) { in attachPreviousDecl() argument
1800 assert(D && previous); in attachPreviousDecl()
1801 if (TagDecl *TD = dyn_cast<TagDecl>(D)) { in attachPreviousDecl()
1803 } else if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) { in attachPreviousDecl()
1805 } else if (VarDecl *VD = dyn_cast<VarDecl>(D)) { in attachPreviousDecl()
1807 } else if (TypedefNameDecl *TD = dyn_cast<TypedefNameDecl>(D)) { in attachPreviousDecl()
1809 } else if (ObjCInterfaceDecl *ID = dyn_cast<ObjCInterfaceDecl>(D)) { in attachPreviousDecl()
1811 } else if (ObjCProtocolDecl *PD = dyn_cast<ObjCProtocolDecl>(D)) { in attachPreviousDecl()
1813 } else if (NamespaceDecl *ND = dyn_cast<NamespaceDecl>(D)) { in attachPreviousDecl()
1816 RedeclarableTemplateDecl *TD = cast<RedeclarableTemplateDecl>(D); in attachPreviousDecl()
1821 void ASTDeclReader::attachLatestDecl(Decl *D, Decl *Latest) { in attachLatestDecl() argument
1822 assert(D && Latest); in attachLatestDecl()
1823 if (TagDecl *TD = dyn_cast<TagDecl>(D)) { in attachLatestDecl()
1826 } else if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) { in attachLatestDecl()
1829 } else if (VarDecl *VD = dyn_cast<VarDecl>(D)) { in attachLatestDecl()
1832 } else if (TypedefNameDecl *TD = dyn_cast<TypedefNameDecl>(D)) { in attachLatestDecl()
1836 } else if (ObjCInterfaceDecl *ID = dyn_cast<ObjCInterfaceDecl>(D)) { in attachLatestDecl()
1840 } else if (ObjCProtocolDecl *PD = dyn_cast<ObjCProtocolDecl>(D)) { in attachLatestDecl()
1844 } else if (NamespaceDecl *ND = dyn_cast<NamespaceDecl>(D)) { in attachLatestDecl()
1849 RedeclarableTemplateDecl *TD = cast<RedeclarableTemplateDecl>(D); in attachLatestDecl()
1879 void ASTReader::loadAndAttachPreviousDecl(Decl *D, serialization::DeclID ID) { in loadAndAttachPreviousDecl() argument
1881 ASTDeclReader::attachPreviousDecl(D, previous); in loadAndAttachPreviousDecl()
1905 Decl *D = 0; in ReadDeclRecord() local
1911 D = TypedefDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1914 D = TypeAliasDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1917 D = EnumDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1920 D = RecordDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1923 D = EnumConstantDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1926 D = FunctionDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1929 D = LinkageSpecDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1932 D = LabelDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1935 D = NamespaceDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1938 D = NamespaceAliasDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1941 D = UsingDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1944 D = UsingShadowDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1947 D = UsingDirectiveDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1950 D = UnresolvedUsingValueDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1953 D = UnresolvedUsingTypenameDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1956 D = CXXRecordDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1959 D = CXXMethodDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1962 D = CXXConstructorDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1965 D = CXXDestructorDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1968 D = CXXConversionDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1971 D = AccessSpecDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1974 D = FriendDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1977 D = FriendTemplateDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1980 D = ClassTemplateDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1983 D = ClassTemplateSpecializationDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1986 D = ClassTemplatePartialSpecializationDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1989 D = ClassScopeFunctionSpecializationDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1992 D = FunctionTemplateDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1995 D = TemplateTypeParmDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
1998 D = NonTypeTemplateParmDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
2001 D = NonTypeTemplateParmDecl::CreateDeserialized(Context, ID, Record[Idx++]); in ReadDeclRecord()
2004 D = TemplateTemplateParmDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
2007 D = TypeAliasTemplateDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
2010 D = StaticAssertDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
2013 D = ObjCMethodDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
2016 D = ObjCInterfaceDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
2019 D = ObjCIvarDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
2022 D = ObjCProtocolDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
2025 D = ObjCAtDefsFieldDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
2028 D = ObjCCategoryDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
2031 D = ObjCCategoryImplDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
2034 D = ObjCImplementationDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
2037 D = ObjCCompatibleAliasDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
2040 D = ObjCPropertyDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
2043 D = ObjCPropertyImplDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
2046 D = FieldDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
2049 D = IndirectFieldDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
2052 D = VarDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
2055 D = ImplicitParamDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
2058 D = ParmVarDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
2061 D = FileScopeAsmDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
2064 D = BlockDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
2072 D = ImportDecl::CreateDeserialized(Context, ID, Record.back()); in ReadDeclRecord()
2076 assert(D && "Unknown declaration reading AST file"); in ReadDeclRecord()
2077 LoadedDecl(Index, D); in ReadDeclRecord()
2081 D->setDeclContext(Context.getTranslationUnitDecl()); in ReadDeclRecord()
2082 Reader.Visit(D); in ReadDeclRecord()
2086 if (DeclContext *DC = dyn_cast<DeclContext>(D)) { in ReadDeclRecord()
2118 loadDeclUpdateRecords(ID, D); in ReadDeclRecord()
2121 if (ObjCInterfaceDecl *Class = dyn_cast<ObjCInterfaceDecl>(D)) in ReadDeclRecord()
2129 if (isConsumerInterestedIn(D)) in ReadDeclRecord()
2130 InterestingDecls.push_back(D); in ReadDeclRecord()
2132 return D; in ReadDeclRecord()
2135 void ASTReader::loadDeclUpdateRecords(serialization::DeclID ID, Decl *D) { in loadDeclUpdateRecords() argument
2157 Reader.UpdateDecl(D, *F, Record); in loadDeclUpdateRecords()
2207 void addToChain(Decl *D) { in addToChain() argument
2208 if (!D) in addToChain()
2211 if (Deserialized.count(D)) { in addToChain()
2212 Deserialized.erase(D); in addToChain()
2213 Chain.push_back(D); in addToChain()
2267 Decl *D = GetDecl(ID); in loadPendingDeclChain() local
2268 Decl *CanonDecl = D->getCanonicalDecl(); in loadPendingDeclChain()
2273 if (D == CanonDecl) { in loadPendingDeclChain()
2438 ObjCInterfaceDecl *D, in loadObjCCategories() argument
2440 ObjCCategoriesVisitor Visitor(*this, ID, D, CategoriesDeserialized, in loadObjCCategories()
2445 void ASTDeclReader::UpdateDecl(Decl *D, ModuleFile &ModuleFile, in UpdateDecl() argument
2451 cast<CXXRecordDecl>(D)->addedMember(Reader.ReadDecl(ModuleFile, Record, Idx)); in UpdateDecl()
2467 if (TranslationUnitDecl *TU = dyn_cast<TranslationUnitDecl>(D)) in UpdateDecl()
2470 cast<NamespaceDecl>(D)->setAnonymousNamespace(Anon); in UpdateDecl()
2476 cast<VarDecl>(D)->getMemberSpecializationInfo()->setPointOfInstantiation( in UpdateDecl()