Lines Matching refs:D

160     void ReadCXXRecordDefinition(CXXRecordDecl *D, bool Update);
162 const CXXRecordDecl *D);
163 void MergeDefinitionData(CXXRecordDecl *D,
166 void MergeDefinitionData(ObjCInterfaceDecl *D,
169 void MergeDefinitionData(ObjCProtocolDecl *D,
178 unsigned Index, NamedDecl *D);
247 FindExistingResult findExisting(NamedDecl *D);
257 void AddLazySpecializations(T *D, in AddLazySpecializations() argument
263 ASTContext &C = D->getASTContext(); in AddLazySpecializations()
265 auto *&LazySpecializations = D->getCommonPtr()->LazySpecializations; in AddLazySpecializations()
281 static Decl *getMostRecentDeclImpl(Redeclarable<DeclT> *D);
283 static Decl *getMostRecentDecl(Decl *D);
285 static void mergeInheritableAttributes(ASTReader &Reader, Decl *D,
290 Redeclarable<DeclT> *D, Decl *Previous,
293 static void attachPreviousDecl(ASTReader &Reader, Decl *D, Decl *Previous,
297 static void attachLatestDeclImpl(Redeclarable<DeclT> *D, Decl *Latest);
299 static void attachLatestDecl(Decl *D, Decl *latest);
302 static void markIncompleteDeclChainImpl(Redeclarable<DeclT> *D);
309 void Visit(Decl *D);
311 void UpdateDecl(Decl *D, SmallVectorImpl<serialization::DeclID> &);
318 void VisitDecl(Decl *D);
319 void VisitPragmaCommentDecl(PragmaCommentDecl *D);
320 void VisitPragmaDetectMismatchDecl(PragmaDetectMismatchDecl *D);
324 void VisitNamespaceDecl(NamespaceDecl *D);
325 void VisitUsingDirectiveDecl(UsingDirectiveDecl *D);
326 void VisitNamespaceAliasDecl(NamespaceAliasDecl *D);
331 void VisitUnresolvedUsingTypenameDecl(UnresolvedUsingTypenameDecl *D);
332 void VisitUnresolvedUsingIfExistsDecl(UnresolvedUsingIfExistsDecl *D);
337 RedeclarableResult VisitCXXRecordDeclImpl(CXXRecordDecl *D);
338 void VisitCXXRecordDecl(CXXRecordDecl *D) { VisitCXXRecordDeclImpl(D); } in VisitCXXRecordDecl() argument
340 ClassTemplateSpecializationDecl *D);
343 ClassTemplateSpecializationDecl *D) { in VisitClassTemplateSpecializationDecl() argument
344 VisitClassTemplateSpecializationDeclImpl(D); in VisitClassTemplateSpecializationDecl()
348 ClassTemplatePartialSpecializationDecl *D);
350 ClassScopeFunctionSpecializationDecl *D);
352 VisitVarTemplateSpecializationDeclImpl(VarTemplateSpecializationDecl *D);
354 void VisitVarTemplateSpecializationDecl(VarTemplateSpecializationDecl *D) { in VisitVarTemplateSpecializationDecl() argument
355 VisitVarTemplateSpecializationDeclImpl(D); in VisitVarTemplateSpecializationDecl()
359 VarTemplatePartialSpecializationDecl *D);
360 void VisitTemplateTypeParmDecl(TemplateTypeParmDecl *D);
363 void VisitUnresolvedUsingValueDecl(UnresolvedUsingValueDecl *D);
367 void VisitCXXMethodDecl(CXXMethodDecl *D);
368 void VisitCXXConstructorDecl(CXXConstructorDecl *D);
369 void VisitCXXDestructorDecl(CXXDestructorDecl *D);
370 void VisitCXXConversionDecl(CXXConversionDecl *D);
373 void VisitMSGuidDecl(MSGuidDecl *D);
374 void VisitUnnamedGlobalConstantDecl(UnnamedGlobalConstantDecl *D);
375 void VisitTemplateParamObjectDecl(TemplateParamObjectDecl *D);
377 RedeclarableResult VisitVarDeclImpl(VarDecl *D);
383 void VisitNonTypeTemplateParmDecl(NonTypeTemplateParmDecl *D);
384 DeclID VisitTemplateDecl(TemplateDecl *D);
385 void VisitConceptDecl(ConceptDecl *D);
386 void VisitRequiresExprBodyDecl(RequiresExprBodyDecl *D);
387 RedeclarableResult VisitRedeclarableTemplateDecl(RedeclarableTemplateDecl *D);
388 void VisitClassTemplateDecl(ClassTemplateDecl *D);
389 void VisitBuiltinTemplateDecl(BuiltinTemplateDecl *D);
390 void VisitVarTemplateDecl(VarTemplateDecl *D);
391 void VisitFunctionTemplateDecl(FunctionTemplateDecl *D);
392 void VisitTemplateTemplateParmDecl(TemplateTemplateParmDecl *D);
393 void VisitTypeAliasTemplateDecl(TypeAliasTemplateDecl *D);
394 void VisitUsingDecl(UsingDecl *D);
395 void VisitUsingEnumDecl(UsingEnumDecl *D);
396 void VisitUsingPackDecl(UsingPackDecl *D);
397 void VisitUsingShadowDecl(UsingShadowDecl *D);
398 void VisitConstructorUsingShadowDecl(ConstructorUsingShadowDecl *D);
399 void VisitLinkageSpecDecl(LinkageSpecDecl *D);
400 void VisitExportDecl(ExportDecl *D);
402 void VisitImportDecl(ImportDecl *D);
403 void VisitAccessSpecDecl(AccessSpecDecl *D);
404 void VisitFriendDecl(FriendDecl *D);
405 void VisitFriendTemplateDecl(FriendTemplateDecl *D);
406 void VisitStaticAssertDecl(StaticAssertDecl *D);
409 void VisitEmptyDecl(EmptyDecl *D);
410 void VisitLifetimeExtendedTemporaryDecl(LifetimeExtendedTemporaryDecl *D);
415 RedeclarableResult VisitRedeclarable(Redeclarable<T> *D);
418 void mergeRedeclarable(Redeclarable<T> *D, RedeclarableResult &Redecl,
422 void mergeRedeclarable(Redeclarable<T> *D, T *Existing,
427 void mergeMergeable(Mergeable<T> *D);
429 void mergeMergeable(LifetimeExtendedTemporaryDecl *D);
431 void mergeTemplatePattern(RedeclarableTemplateDecl *D,
438 void VisitObjCMethodDecl(ObjCMethodDecl *D);
439 void VisitObjCTypeParamDecl(ObjCTypeParamDecl *D);
440 void VisitObjCContainerDecl(ObjCContainerDecl *D);
441 void VisitObjCInterfaceDecl(ObjCInterfaceDecl *D);
442 void VisitObjCIvarDecl(ObjCIvarDecl *D);
443 void VisitObjCProtocolDecl(ObjCProtocolDecl *D);
444 void VisitObjCAtDefsFieldDecl(ObjCAtDefsFieldDecl *D);
445 void VisitObjCCategoryDecl(ObjCCategoryDecl *D);
446 void VisitObjCImplDecl(ObjCImplDecl *D);
447 void VisitObjCCategoryImplDecl(ObjCCategoryImplDecl *D);
448 void VisitObjCImplementationDecl(ObjCImplementationDecl *D);
449 void VisitObjCCompatibleAliasDecl(ObjCCompatibleAliasDecl *D);
450 void VisitObjCPropertyDecl(ObjCPropertyDecl *D);
451 void VisitObjCPropertyImplDecl(ObjCPropertyImplDecl *D);
452 void VisitOMPThreadPrivateDecl(OMPThreadPrivateDecl *D);
453 void VisitOMPAllocateDecl(OMPAllocateDecl *D);
454 void VisitOMPDeclareReductionDecl(OMPDeclareReductionDecl *D);
455 void VisitOMPDeclareMapperDecl(OMPDeclareMapperDecl *D);
456 void VisitOMPRequiresDecl(OMPRequiresDecl *D);
457 void VisitOMPCapturedExprDecl(OMPCapturedExprDecl *D);
504 merged_redecls(DeclT *D) { in merged_redecls() argument
505 return llvm::make_range(MergedRedeclIterator<DeclT>(D), in merged_redecls()
529 void ASTDeclReader::Visit(Decl *D) { in Visit() argument
530 DeclVisitor<ASTDeclReader, void>::Visit(D); in Visit()
534 D->getCanonicalDecl()->Used |= IsDeclMarkedUsed; in Visit()
537 if (auto *DD = dyn_cast<DeclaratorDecl>(D)) { in Visit()
542 if (auto *TD = dyn_cast<TypeDecl>(D)) { in Visit()
549 cast<TagDecl>(D)->TypedefNameDeclOrQualifier = in Visit()
551 } else if (auto *ID = dyn_cast<ObjCInterfaceDecl>(D)) { in Visit()
554 } else if (auto *FD = dyn_cast<FunctionDecl>(D)) { in Visit()
564 void ASTDeclReader::VisitDecl(Decl *D) { in VisitDecl() argument
565 if (D->isTemplateParameter() || D->isTemplateParameterPack() || in VisitDecl()
566 isa<ParmVarDecl>(D) || isa<ObjCTypeParamDecl>(D)) { in VisitDecl()
577 Reader.addPendingDeclContextInfo(D, in VisitDecl()
580 D->setDeclContext(Reader.getContext().getTranslationUnitDecl()); in VisitDecl()
589 D->setDeclContextsImpl(MergedSemaDC ? MergedSemaDC : SemaDC, LexicalDC, in VisitDecl()
592 D->setLocation(ThisDeclLoc); in VisitDecl()
593 D->InvalidDecl = Record.readInt(); in VisitDecl()
599 D->setAttrsImpl(Attrs, Reader.getContext()); in VisitDecl()
601 D->setImplicit(Record.readInt()); in VisitDecl()
602 D->Used = Record.readInt(); in VisitDecl()
603 IsDeclMarkedUsed |= D->Used; in VisitDecl()
604 D->setReferenced(Record.readInt()); in VisitDecl()
605 D->setTopLevelDeclInObjCContainer(Record.readInt()); in VisitDecl()
606 D->setAccess((AccessSpecifier)Record.readInt()); in VisitDecl()
607 D->FromASTFile = true; in VisitDecl()
627 D->setModuleOwnershipKind(ModuleOwnership); in VisitDecl()
629 D->setOwningModuleID(SubmoduleID); in VisitDecl()
640 D->setVisibleDespiteOwningModule(); in VisitDecl()
642 Reader.HiddenNamesMap[Owner].push_back(D); in VisitDecl()
645 D->setModuleOwnershipKind(Decl::ModuleOwnershipKind::ModulePrivate); in VisitDecl()
649 void ASTDeclReader::VisitPragmaCommentDecl(PragmaCommentDecl *D) { in VisitPragmaCommentDecl() argument
650 VisitDecl(D); in VisitPragmaCommentDecl()
651 D->setLocation(readSourceLocation()); in VisitPragmaCommentDecl()
652 D->CommentKind = (PragmaMSCommentKind)Record.readInt(); in VisitPragmaCommentDecl()
654 memcpy(D->getTrailingObjects<char>(), Arg.data(), Arg.size()); in VisitPragmaCommentDecl()
655 D->getTrailingObjects<char>()[Arg.size()] = '\0'; in VisitPragmaCommentDecl()
658 void ASTDeclReader::VisitPragmaDetectMismatchDecl(PragmaDetectMismatchDecl *D) { in VisitPragmaDetectMismatchDecl() argument
659 VisitDecl(D); in VisitPragmaDetectMismatchDecl()
660 D->setLocation(readSourceLocation()); in VisitPragmaDetectMismatchDecl()
662 memcpy(D->getTrailingObjects<char>(), Name.data(), Name.size()); in VisitPragmaDetectMismatchDecl()
663 D->getTrailingObjects<char>()[Name.size()] = '\0'; in VisitPragmaDetectMismatchDecl()
665 D->ValueStart = Name.size() + 1; in VisitPragmaDetectMismatchDecl()
667 memcpy(D->getTrailingObjects<char>() + D->ValueStart, Value.data(), in VisitPragmaDetectMismatchDecl()
669 D->getTrailingObjects<char>()[D->ValueStart + Value.size()] = '\0'; in VisitPragmaDetectMismatchDecl()
781 for (auto *D : merged_redecls(ED->getCanonicalDecl())) { in VisitEnumDecl() local
782 if (!D->isFromASTFile() && D->isCompleteDefinition()) { in VisitEnumDecl()
783 OldDef = D; in VisitEnumDecl()
836 for (auto *D : merged_redecls(Canon)) { in VisitRecordDecl() local
837 if (!D->isFromASTFile() && D->isCompleteDefinition()) { in VisitRecordDecl()
838 OldDef = D; in VisitRecordDecl()
1128 void ASTDeclReader::VisitObjCTypeParamDecl(ObjCTypeParamDecl *D) { in VisitObjCTypeParamDecl() argument
1129 VisitTypedefNameDecl(D); in VisitObjCTypeParamDecl()
1131 D->Variance = Record.readInt(); in VisitObjCTypeParamDecl()
1132 D->Index = Record.readInt(); in VisitObjCTypeParamDecl()
1133 D->VarianceLoc = readSourceLocation(); in VisitObjCTypeParamDecl()
1134 D->ColonLoc = readSourceLocation(); in VisitObjCTypeParamDecl()
1196 void ASTDeclReader::MergeDefinitionData(ObjCInterfaceDecl *D, in MergeDefinitionData() argument
1198 struct ObjCInterfaceDecl::DefinitionData &DD = D->data(); in MergeDefinitionData()
1302 void ASTDeclReader::MergeDefinitionData(ObjCProtocolDecl *D, in MergeDefinitionData() argument
1304 struct ObjCProtocolDecl::DefinitionData &DD = D->data(); in MergeDefinitionData()
1384 void ASTDeclReader::VisitObjCPropertyDecl(ObjCPropertyDecl *D) { in VisitObjCPropertyDecl() argument
1385 VisitNamedDecl(D); in VisitObjCPropertyDecl()
1386 D->setAtLoc(readSourceLocation()); in VisitObjCPropertyDecl()
1387 D->setLParenLoc(readSourceLocation()); in VisitObjCPropertyDecl()
1390 D->setType(T, TSI); in VisitObjCPropertyDecl()
1391 D->setPropertyAttributes((ObjCPropertyAttribute::Kind)Record.readInt()); in VisitObjCPropertyDecl()
1392 D->setPropertyAttributesAsWritten( in VisitObjCPropertyDecl()
1394 D->setPropertyImplementation( in VisitObjCPropertyDecl()
1398 D->setGetterName(GetterName.getObjCSelector(), GetterLoc); in VisitObjCPropertyDecl()
1401 D->setSetterName(SetterName.getObjCSelector(), SetterLoc); in VisitObjCPropertyDecl()
1402 D->setGetterMethodDecl(readDeclAs<ObjCMethodDecl>()); in VisitObjCPropertyDecl()
1403 D->setSetterMethodDecl(readDeclAs<ObjCMethodDecl>()); in VisitObjCPropertyDecl()
1404 D->setPropertyIvarDecl(readDeclAs<ObjCIvarDecl>()); in VisitObjCPropertyDecl()
1407 void ASTDeclReader::VisitObjCImplDecl(ObjCImplDecl *D) { in VisitObjCImplDecl() argument
1408 VisitObjCContainerDecl(D); in VisitObjCImplDecl()
1409 D->setClassInterface(readDeclAs<ObjCInterfaceDecl>()); in VisitObjCImplDecl()
1412 void ASTDeclReader::VisitObjCCategoryImplDecl(ObjCCategoryImplDecl *D) { in VisitObjCCategoryImplDecl() argument
1413 VisitObjCImplDecl(D); in VisitObjCCategoryImplDecl()
1414 D->CategoryNameLoc = readSourceLocation(); in VisitObjCCategoryImplDecl()
1417 void ASTDeclReader::VisitObjCImplementationDecl(ObjCImplementationDecl *D) { in VisitObjCImplementationDecl() argument
1418 VisitObjCImplDecl(D); in VisitObjCImplementationDecl()
1419 D->setSuperClass(readDeclAs<ObjCInterfaceDecl>()); in VisitObjCImplementationDecl()
1420 D->SuperLoc = readSourceLocation(); in VisitObjCImplementationDecl()
1421 D->setIvarLBraceLoc(readSourceLocation()); in VisitObjCImplementationDecl()
1422 D->setIvarRBraceLoc(readSourceLocation()); in VisitObjCImplementationDecl()
1423 D->setHasNonZeroConstructors(Record.readInt()); in VisitObjCImplementationDecl()
1424 D->setHasDestructors(Record.readInt()); in VisitObjCImplementationDecl()
1425 D->NumIvarInitializers = Record.readInt(); in VisitObjCImplementationDecl()
1426 if (D->NumIvarInitializers) in VisitObjCImplementationDecl()
1427 D->IvarInitializers = ReadGlobalOffset(); in VisitObjCImplementationDecl()
1430 void ASTDeclReader::VisitObjCPropertyImplDecl(ObjCPropertyImplDecl *D) { in VisitObjCPropertyImplDecl() argument
1431 VisitDecl(D); in VisitObjCPropertyImplDecl()
1432 D->setAtLoc(readSourceLocation()); in VisitObjCPropertyImplDecl()
1433 D->setPropertyDecl(readDeclAs<ObjCPropertyDecl>()); in VisitObjCPropertyImplDecl()
1434 D->PropertyIvarDecl = readDeclAs<ObjCIvarDecl>(); in VisitObjCPropertyImplDecl()
1435 D->IvarLoc = readSourceLocation(); in VisitObjCPropertyImplDecl()
1436 D->setGetterMethodDecl(readDeclAs<ObjCMethodDecl>()); in VisitObjCPropertyImplDecl()
1437 D->setSetterMethodDecl(readDeclAs<ObjCMethodDecl>()); in VisitObjCPropertyImplDecl()
1438 D->setGetterCXXConstructor(Record.readExpr()); in VisitObjCPropertyImplDecl()
1439 D->setSetterCXXAssignment(Record.readExpr()); in VisitObjCPropertyImplDecl()
1469 void ASTDeclReader::VisitMSGuidDecl(MSGuidDecl *D) { in VisitMSGuidDecl() argument
1470 VisitValueDecl(D); in VisitMSGuidDecl()
1471 D->PartVal.Part1 = Record.readInt(); in VisitMSGuidDecl()
1472 D->PartVal.Part2 = Record.readInt(); in VisitMSGuidDecl()
1473 D->PartVal.Part3 = Record.readInt(); in VisitMSGuidDecl()
1474 for (auto &C : D->PartVal.Part4And5) in VisitMSGuidDecl()
1478 if (MSGuidDecl *Existing = Reader.getContext().MSGuidDecls.GetOrInsertNode(D)) in VisitMSGuidDecl()
1479 Reader.getContext().setPrimaryMergedDecl(D, Existing->getCanonicalDecl()); in VisitMSGuidDecl()
1483 UnnamedGlobalConstantDecl *D) { in VisitUnnamedGlobalConstantDecl() argument
1484 VisitValueDecl(D); in VisitUnnamedGlobalConstantDecl()
1485 D->Value = Record.readAPValue(); in VisitUnnamedGlobalConstantDecl()
1489 Reader.getContext().UnnamedGlobalConstantDecls.GetOrInsertNode(D)) in VisitUnnamedGlobalConstantDecl()
1490 Reader.getContext().setPrimaryMergedDecl(D, Existing->getCanonicalDecl()); in VisitUnnamedGlobalConstantDecl()
1493 void ASTDeclReader::VisitTemplateParamObjectDecl(TemplateParamObjectDecl *D) { in VisitTemplateParamObjectDecl() argument
1494 VisitValueDecl(D); in VisitTemplateParamObjectDecl()
1495 D->Value = Record.readAPValue(); in VisitTemplateParamObjectDecl()
1500 Reader.getContext().TemplateParamObjectDecls.GetOrInsertNode(D)) in VisitTemplateParamObjectDecl()
1501 Reader.getContext().setPrimaryMergedDecl(D, Existing->getCanonicalDecl()); in VisitTemplateParamObjectDecl()
1689 void ASTDeclReader::VisitLinkageSpecDecl(LinkageSpecDecl *D) { in VisitLinkageSpecDecl() argument
1690 VisitDecl(D); in VisitLinkageSpecDecl()
1691 D->setLanguage((LinkageSpecDecl::LanguageIDs)Record.readInt()); in VisitLinkageSpecDecl()
1692 D->setExternLoc(readSourceLocation()); in VisitLinkageSpecDecl()
1693 D->setRBraceLoc(readSourceLocation()); in VisitLinkageSpecDecl()
1696 void ASTDeclReader::VisitExportDecl(ExportDecl *D) { in VisitExportDecl() argument
1697 VisitDecl(D); in VisitExportDecl()
1698 D->RBraceLoc = readSourceLocation(); in VisitExportDecl()
1701 void ASTDeclReader::VisitLabelDecl(LabelDecl *D) { in VisitLabelDecl() argument
1702 VisitNamedDecl(D); in VisitLabelDecl()
1703 D->setLocStart(readSourceLocation()); in VisitLabelDecl()
1706 void ASTDeclReader::VisitNamespaceDecl(NamespaceDecl *D) { in VisitNamespaceDecl() argument
1707 RedeclarableResult Redecl = VisitRedeclarable(D); in VisitNamespaceDecl()
1708 VisitNamedDecl(D); in VisitNamespaceDecl()
1709 D->setInline(Record.readInt()); in VisitNamespaceDecl()
1710 D->LocStart = readSourceLocation(); in VisitNamespaceDecl()
1711 D->RBraceLoc = readSourceLocation(); in VisitNamespaceDecl()
1723 D->AnonOrFirstNamespaceAndInline.setPointer(D->getFirstDecl()); in VisitNamespaceDecl()
1726 mergeRedeclarable(D, Redecl); in VisitNamespaceDecl()
1734 D->setAnonymousNamespace(Anon); in VisitNamespaceDecl()
1738 void ASTDeclReader::VisitNamespaceAliasDecl(NamespaceAliasDecl *D) { in VisitNamespaceAliasDecl() argument
1739 RedeclarableResult Redecl = VisitRedeclarable(D); in VisitNamespaceAliasDecl()
1740 VisitNamedDecl(D); in VisitNamespaceAliasDecl()
1741 D->NamespaceLoc = readSourceLocation(); in VisitNamespaceAliasDecl()
1742 D->IdentLoc = readSourceLocation(); in VisitNamespaceAliasDecl()
1743 D->QualifierLoc = Record.readNestedNameSpecifierLoc(); in VisitNamespaceAliasDecl()
1744 D->Namespace = readDeclAs<NamedDecl>(); in VisitNamespaceAliasDecl()
1745 mergeRedeclarable(D, Redecl); in VisitNamespaceAliasDecl()
1748 void ASTDeclReader::VisitUsingDecl(UsingDecl *D) { in VisitUsingDecl() argument
1749 VisitNamedDecl(D); in VisitUsingDecl()
1750 D->setUsingLoc(readSourceLocation()); in VisitUsingDecl()
1751 D->QualifierLoc = Record.readNestedNameSpecifierLoc(); in VisitUsingDecl()
1752 D->DNLoc = Record.readDeclarationNameLoc(D->getDeclName()); in VisitUsingDecl()
1753 D->FirstUsingShadow.setPointer(readDeclAs<UsingShadowDecl>()); in VisitUsingDecl()
1754 D->setTypename(Record.readInt()); in VisitUsingDecl()
1756 Reader.getContext().setInstantiatedFromUsingDecl(D, Pattern); in VisitUsingDecl()
1757 mergeMergeable(D); in VisitUsingDecl()
1760 void ASTDeclReader::VisitUsingEnumDecl(UsingEnumDecl *D) { in VisitUsingEnumDecl() argument
1761 VisitNamedDecl(D); in VisitUsingEnumDecl()
1762 D->setUsingLoc(readSourceLocation()); in VisitUsingEnumDecl()
1763 D->setEnumLoc(readSourceLocation()); in VisitUsingEnumDecl()
1764 D->Enum = readDeclAs<EnumDecl>(); in VisitUsingEnumDecl()
1765 D->FirstUsingShadow.setPointer(readDeclAs<UsingShadowDecl>()); in VisitUsingEnumDecl()
1767 Reader.getContext().setInstantiatedFromUsingEnumDecl(D, Pattern); in VisitUsingEnumDecl()
1768 mergeMergeable(D); in VisitUsingEnumDecl()
1771 void ASTDeclReader::VisitUsingPackDecl(UsingPackDecl *D) { in VisitUsingPackDecl() argument
1772 VisitNamedDecl(D); in VisitUsingPackDecl()
1773 D->InstantiatedFrom = readDeclAs<NamedDecl>(); in VisitUsingPackDecl()
1774 auto **Expansions = D->getTrailingObjects<NamedDecl *>(); in VisitUsingPackDecl()
1775 for (unsigned I = 0; I != D->NumExpansions; ++I) in VisitUsingPackDecl()
1777 mergeMergeable(D); in VisitUsingPackDecl()
1780 void ASTDeclReader::VisitUsingShadowDecl(UsingShadowDecl *D) { in VisitUsingShadowDecl() argument
1781 RedeclarableResult Redecl = VisitRedeclarable(D); in VisitUsingShadowDecl()
1782 VisitNamedDecl(D); in VisitUsingShadowDecl()
1783 D->Underlying = readDeclAs<NamedDecl>(); in VisitUsingShadowDecl()
1784 D->IdentifierNamespace = Record.readInt(); in VisitUsingShadowDecl()
1785 D->UsingOrNextShadow = readDeclAs<NamedDecl>(); in VisitUsingShadowDecl()
1788 Reader.getContext().setInstantiatedFromUsingShadowDecl(D, Pattern); in VisitUsingShadowDecl()
1789 mergeRedeclarable(D, Redecl); in VisitUsingShadowDecl()
1793 ConstructorUsingShadowDecl *D) { in VisitConstructorUsingShadowDecl() argument
1794 VisitUsingShadowDecl(D); in VisitConstructorUsingShadowDecl()
1795 D->NominatedBaseClassShadowDecl = readDeclAs<ConstructorUsingShadowDecl>(); in VisitConstructorUsingShadowDecl()
1796 D->ConstructedBaseClassShadowDecl = readDeclAs<ConstructorUsingShadowDecl>(); in VisitConstructorUsingShadowDecl()
1797 D->IsVirtual = Record.readInt(); in VisitConstructorUsingShadowDecl()
1800 void ASTDeclReader::VisitUsingDirectiveDecl(UsingDirectiveDecl *D) { in VisitUsingDirectiveDecl() argument
1801 VisitNamedDecl(D); in VisitUsingDirectiveDecl()
1802 D->UsingLoc = readSourceLocation(); in VisitUsingDirectiveDecl()
1803 D->NamespaceLoc = readSourceLocation(); in VisitUsingDirectiveDecl()
1804 D->QualifierLoc = Record.readNestedNameSpecifierLoc(); in VisitUsingDirectiveDecl()
1805 D->NominatedNamespace = readDeclAs<NamedDecl>(); in VisitUsingDirectiveDecl()
1806 D->CommonAncestor = readDeclAs<DeclContext>(); in VisitUsingDirectiveDecl()
1809 void ASTDeclReader::VisitUnresolvedUsingValueDecl(UnresolvedUsingValueDecl *D) { in VisitUnresolvedUsingValueDecl() argument
1810 VisitValueDecl(D); in VisitUnresolvedUsingValueDecl()
1811 D->setUsingLoc(readSourceLocation()); in VisitUnresolvedUsingValueDecl()
1812 D->QualifierLoc = Record.readNestedNameSpecifierLoc(); in VisitUnresolvedUsingValueDecl()
1813 D->DNLoc = Record.readDeclarationNameLoc(D->getDeclName()); in VisitUnresolvedUsingValueDecl()
1814 D->EllipsisLoc = readSourceLocation(); in VisitUnresolvedUsingValueDecl()
1815 mergeMergeable(D); in VisitUnresolvedUsingValueDecl()
1819 UnresolvedUsingTypenameDecl *D) { in VisitUnresolvedUsingTypenameDecl() argument
1820 VisitTypeDecl(D); in VisitUnresolvedUsingTypenameDecl()
1821 D->TypenameLocation = readSourceLocation(); in VisitUnresolvedUsingTypenameDecl()
1822 D->QualifierLoc = Record.readNestedNameSpecifierLoc(); in VisitUnresolvedUsingTypenameDecl()
1823 D->EllipsisLoc = readSourceLocation(); in VisitUnresolvedUsingTypenameDecl()
1824 mergeMergeable(D); in VisitUnresolvedUsingTypenameDecl()
1828 UnresolvedUsingIfExistsDecl *D) { in VisitUnresolvedUsingIfExistsDecl() argument
1829 VisitNamedDecl(D); in VisitUnresolvedUsingIfExistsDecl()
1833 struct CXXRecordDecl::DefinitionData &Data, const CXXRecordDecl *D) { in ReadCXXDefinitionData() argument
1843 Reader.DefinitionSource[D] = in ReadCXXDefinitionData()
1873 D->setDeviceLambdaManglingNumber(Record.readInt()); in ReadCXXDefinitionData()
1901 CXXRecordDecl *D, struct CXXRecordDecl::DefinitionData &&MergeDD) { in MergeDefinitionData() argument
1902 assert(D->DefinitionData && in MergeDefinitionData()
1904 auto &DD = *D->DefinitionData; in MergeDefinitionData()
1965 if (D->getODRHash() != MergeDD.ODRHash) { in MergeDefinitionData()
1974 void ASTDeclReader::ReadCXXRecordDefinition(CXXRecordDecl *D, bool Update) { in ReadCXXRecordDefinition() argument
1983 D, nullptr, CXXRecordDecl::LDK_Unknown, false, LCD_None); in ReadCXXRecordDefinition()
1985 DD = new (C) struct CXXRecordDecl::DefinitionData(D); in ReadCXXRecordDefinition()
1987 CXXRecordDecl *Canon = D->getCanonicalDecl(); in ReadCXXRecordDefinition()
1993 D->DefinitionData = Canon->DefinitionData; in ReadCXXRecordDefinition()
1994 ReadCXXDefinitionData(*DD, D); in ReadCXXRecordDefinition()
2005 D->setCompleteDefinition(true); in ReadCXXRecordDefinition()
2010 if (Update || Canon != D) in ReadCXXRecordDefinition()
2011 Reader.PendingDefinitions.insert(D); in ReadCXXRecordDefinition()
2015 ASTDeclReader::VisitCXXRecordDeclImpl(CXXRecordDecl *D) { in VisitCXXRecordDeclImpl() argument
2016 RedeclarableResult Redecl = VisitRecordDeclImpl(D); in VisitCXXRecordDeclImpl()
2026 if (!isa<ClassTemplateSpecializationDecl>(D)) in VisitCXXRecordDeclImpl()
2027 mergeRedeclarable(D, Redecl); in VisitCXXRecordDeclImpl()
2032 D->TemplateOrInstantiation = Template; in VisitCXXRecordDeclImpl()
2050 D->TemplateOrInstantiation = MSI; in VisitCXXRecordDeclImpl()
2051 mergeRedeclarable(D, Redecl); in VisitCXXRecordDeclImpl()
2058 ReadCXXRecordDefinition(D, /*Update*/false); in VisitCXXRecordDeclImpl()
2061 D->DefinitionData = D->getCanonicalDecl()->DefinitionData; in VisitCXXRecordDeclImpl()
2067 if (KeyFn && D->isCompleteDefinition()) in VisitCXXRecordDeclImpl()
2071 C.KeyFunctions[D] = KeyFn; in VisitCXXRecordDeclImpl()
2077 void ASTDeclReader::VisitCXXDeductionGuideDecl(CXXDeductionGuideDecl *D) { in VisitCXXDeductionGuideDecl() argument
2078 D->setExplicitSpecifier(Record.readExplicitSpec()); in VisitCXXDeductionGuideDecl()
2079 D->Ctor = readDeclAs<CXXConstructorDecl>(); in VisitCXXDeductionGuideDecl()
2080 VisitFunctionDecl(D); in VisitCXXDeductionGuideDecl()
2081 D->setIsCopyDeductionCandidate(Record.readInt()); in VisitCXXDeductionGuideDecl()
2084 void ASTDeclReader::VisitCXXMethodDecl(CXXMethodDecl *D) { in VisitCXXMethodDecl() argument
2085 VisitFunctionDecl(D); in VisitCXXMethodDecl()
2088 if (D->isCanonicalDecl()) { in VisitCXXMethodDecl()
2093 Reader.getContext().addOverriddenMethod(D, MD->getCanonicalDecl()); in VisitCXXMethodDecl()
2102 void ASTDeclReader::VisitCXXConstructorDecl(CXXConstructorDecl *D) { in VisitCXXConstructorDecl() argument
2105 D->setExplicitSpecifier(Record.readExplicitSpec()); in VisitCXXConstructorDecl()
2106 if (D->isInheritingConstructor()) { in VisitCXXConstructorDecl()
2109 *D->getTrailingObjects<InheritedConstructor>() = in VisitCXXConstructorDecl()
2113 VisitCXXMethodDecl(D); in VisitCXXConstructorDecl()
2116 void ASTDeclReader::VisitCXXDestructorDecl(CXXDestructorDecl *D) { in VisitCXXDestructorDecl() argument
2117 VisitCXXMethodDecl(D); in VisitCXXDestructorDecl()
2120 CXXDestructorDecl *Canon = D->getCanonicalDecl(); in VisitCXXDestructorDecl()
2130 void ASTDeclReader::VisitCXXConversionDecl(CXXConversionDecl *D) { in VisitCXXConversionDecl() argument
2131 D->setExplicitSpecifier(Record.readExplicitSpec()); in VisitCXXConversionDecl()
2132 VisitCXXMethodDecl(D); in VisitCXXConversionDecl()
2135 void ASTDeclReader::VisitImportDecl(ImportDecl *D) { in VisitImportDecl() argument
2136 VisitDecl(D); in VisitImportDecl()
2137 D->ImportedModule = readModule(); in VisitImportDecl()
2138 D->setImportComplete(Record.readInt()); in VisitImportDecl()
2139 auto *StoredLocs = D->getTrailingObjects<SourceLocation>(); in VisitImportDecl()
2145 void ASTDeclReader::VisitAccessSpecDecl(AccessSpecDecl *D) { in VisitAccessSpecDecl() argument
2146 VisitDecl(D); in VisitAccessSpecDecl()
2147 D->setColonLoc(readSourceLocation()); in VisitAccessSpecDecl()
2150 void ASTDeclReader::VisitFriendDecl(FriendDecl *D) { in VisitFriendDecl() argument
2151 VisitDecl(D); in VisitFriendDecl()
2153 D->Friend = readDeclAs<NamedDecl>(); in VisitFriendDecl()
2155 D->Friend = readTypeSourceInfo(); in VisitFriendDecl()
2156 for (unsigned i = 0; i != D->NumTPLists; ++i) in VisitFriendDecl()
2157 D->getTrailingObjects<TemplateParameterList *>()[i] = in VisitFriendDecl()
2159 D->NextFriend = readDeclID(); in VisitFriendDecl()
2160 D->UnsupportedFriend = (Record.readInt() != 0); in VisitFriendDecl()
2161 D->FriendLoc = readSourceLocation(); in VisitFriendDecl()
2164 void ASTDeclReader::VisitFriendTemplateDecl(FriendTemplateDecl *D) { in VisitFriendTemplateDecl() argument
2165 VisitDecl(D); in VisitFriendTemplateDecl()
2167 D->NumParams = NumParams; in VisitFriendTemplateDecl()
2168 D->Params = new (Reader.getContext()) TemplateParameterList *[NumParams]; in VisitFriendTemplateDecl()
2170 D->Params[i] = Record.readTemplateParameterList(); in VisitFriendTemplateDecl()
2172 D->Friend = readDeclAs<NamedDecl>(); in VisitFriendTemplateDecl()
2174 D->Friend = readTypeSourceInfo(); in VisitFriendTemplateDecl()
2175 D->FriendLoc = readSourceLocation(); in VisitFriendTemplateDecl()
2178 DeclID ASTDeclReader::VisitTemplateDecl(TemplateDecl *D) { in VisitTemplateDecl() argument
2179 VisitNamedDecl(D); in VisitTemplateDecl()
2184 D->init(TemplatedDecl, TemplateParams); in VisitTemplateDecl()
2189 void ASTDeclReader::VisitConceptDecl(ConceptDecl *D) { in VisitConceptDecl() argument
2190 VisitTemplateDecl(D); in VisitConceptDecl()
2191 D->ConstraintExpr = Record.readExpr(); in VisitConceptDecl()
2192 mergeMergeable(D); in VisitConceptDecl()
2195 void ASTDeclReader::VisitRequiresExprBodyDecl(RequiresExprBodyDecl *D) { in VisitRequiresExprBodyDecl() argument
2199 ASTDeclReader::VisitRedeclarableTemplateDecl(RedeclarableTemplateDecl *D) { in VisitRedeclarableTemplateDecl() argument
2200 RedeclarableResult Redecl = VisitRedeclarable(D); in VisitRedeclarableTemplateDecl()
2204 RedeclarableTemplateDecl *CanonD = D->getCanonicalDecl(); in VisitRedeclarableTemplateDecl()
2209 D->Common = CanonD->Common; in VisitRedeclarableTemplateDecl()
2215 assert(RTD->getKind() == D->getKind() && in VisitRedeclarableTemplateDecl()
2217 D->setInstantiatedFromMemberTemplate(RTD); in VisitRedeclarableTemplateDecl()
2219 D->setMemberSpecialization(); in VisitRedeclarableTemplateDecl()
2223 DeclID PatternID = VisitTemplateDecl(D); in VisitRedeclarableTemplateDecl()
2224 D->IdentifierNamespace = Record.readInt(); in VisitRedeclarableTemplateDecl()
2226 mergeRedeclarable(D, Redecl, PatternID); in VisitRedeclarableTemplateDecl()
2231 D->Common = D->getCanonicalDecl()->Common; in VisitRedeclarableTemplateDecl()
2236 void ASTDeclReader::VisitClassTemplateDecl(ClassTemplateDecl *D) { in VisitClassTemplateDecl() argument
2237 RedeclarableResult Redecl = VisitRedeclarableTemplateDecl(D); in VisitClassTemplateDecl()
2244 ASTDeclReader::AddLazySpecializations(D, SpecIDs); in VisitClassTemplateDecl()
2247 if (D->getTemplatedDecl()->TemplateOrInstantiation) { in VisitClassTemplateDecl()
2252 D->getTemplatedDecl(), D->getInjectedClassNameSpecialization()); in VisitClassTemplateDecl()
2256 void ASTDeclReader::VisitBuiltinTemplateDecl(BuiltinTemplateDecl *D) { in VisitBuiltinTemplateDecl() argument
2263 void ASTDeclReader::VisitVarTemplateDecl(VarTemplateDecl *D) { in VisitVarTemplateDecl() argument
2264 RedeclarableResult Redecl = VisitRedeclarableTemplateDecl(D); in VisitVarTemplateDecl()
2271 ASTDeclReader::AddLazySpecializations(D, SpecIDs); in VisitVarTemplateDecl()
2277 ClassTemplateSpecializationDecl *D) { in VisitClassTemplateSpecializationDeclImpl() argument
2278 RedeclarableResult Redecl = VisitCXXRecordDeclImpl(D); in VisitClassTemplateSpecializationDeclImpl()
2283 D->SpecializedTemplate = CTD; in VisitClassTemplateSpecializationDeclImpl()
2295 D->SpecializedTemplate = PS; in VisitClassTemplateSpecializationDeclImpl()
2301 D->TemplateArgs = TemplateArgumentList::CreateCopy(C, TemplArgs); in VisitClassTemplateSpecializationDeclImpl()
2302 D->PointOfInstantiation = readSourceLocation(); in VisitClassTemplateSpecializationDeclImpl()
2303 D->SpecializationKind = (TemplateSpecializationKind)Record.readInt(); in VisitClassTemplateSpecializationDeclImpl()
2308 if (D->isCanonicalDecl()) { // It's kept in the folding set. in VisitClassTemplateSpecializationDeclImpl()
2311 if (auto *Partial = dyn_cast<ClassTemplatePartialSpecializationDecl>(D)) { in VisitClassTemplateSpecializationDeclImpl()
2316 CanonPattern->getCommonPtr()->Specializations.GetOrInsertNode(D); in VisitClassTemplateSpecializationDeclImpl()
2319 if (CanonSpec != D) { in VisitClassTemplateSpecializationDeclImpl()
2320 mergeRedeclarable<TagDecl>(D, CanonSpec, Redecl); in VisitClassTemplateSpecializationDeclImpl()
2324 if (auto *DDD = D->DefinitionData) { in VisitClassTemplateSpecializationDeclImpl()
2328 CanonSpec->DefinitionData = D->DefinitionData; in VisitClassTemplateSpecializationDeclImpl()
2330 D->DefinitionData = CanonSpec->DefinitionData; in VisitClassTemplateSpecializationDeclImpl()
2342 D->ExplicitInfo = ExplicitInfo; in VisitClassTemplateSpecializationDeclImpl()
2349 ClassTemplatePartialSpecializationDecl *D) { in VisitClassTemplatePartialSpecializationDecl() argument
2353 D->TemplateParams = Params; in VisitClassTemplatePartialSpecializationDecl()
2354 D->ArgsAsWritten = Record.readASTTemplateArgumentListInfo(); in VisitClassTemplatePartialSpecializationDecl()
2356 RedeclarableResult Redecl = VisitClassTemplateSpecializationDeclImpl(D); in VisitClassTemplatePartialSpecializationDecl()
2360 D->InstantiatedFromMember.setPointer( in VisitClassTemplatePartialSpecializationDecl()
2362 D->InstantiatedFromMember.setInt(Record.readInt()); in VisitClassTemplatePartialSpecializationDecl()
2367 ClassScopeFunctionSpecializationDecl *D) { in VisitClassScopeFunctionSpecializationDecl() argument
2368 VisitDecl(D); in VisitClassScopeFunctionSpecializationDecl()
2369 D->Specialization = readDeclAs<CXXMethodDecl>(); in VisitClassScopeFunctionSpecializationDecl()
2371 D->TemplateArgs = Record.readASTTemplateArgumentListInfo(); in VisitClassScopeFunctionSpecializationDecl()
2374 void ASTDeclReader::VisitFunctionTemplateDecl(FunctionTemplateDecl *D) { in VisitFunctionTemplateDecl() argument
2375 RedeclarableResult Redecl = VisitRedeclarableTemplateDecl(D); in VisitFunctionTemplateDecl()
2381 ASTDeclReader::AddLazySpecializations(D, SpecIDs); in VisitFunctionTemplateDecl()
2392 VarTemplateSpecializationDecl *D) { in VisitVarTemplateSpecializationDeclImpl() argument
2393 RedeclarableResult Redecl = VisitVarDeclImpl(D); in VisitVarTemplateSpecializationDeclImpl()
2398 D->SpecializedTemplate = VTD; in VisitVarTemplateSpecializationDeclImpl()
2410 D->SpecializedTemplate = PS; in VisitVarTemplateSpecializationDeclImpl()
2421 D->ExplicitInfo = ExplicitInfo; in VisitVarTemplateSpecializationDeclImpl()
2426 D->TemplateArgs = TemplateArgumentList::CreateCopy(C, TemplArgs); in VisitVarTemplateSpecializationDeclImpl()
2427 D->PointOfInstantiation = readSourceLocation(); in VisitVarTemplateSpecializationDeclImpl()
2428 D->SpecializationKind = (TemplateSpecializationKind)Record.readInt(); in VisitVarTemplateSpecializationDeclImpl()
2429 D->IsCompleteDefinition = Record.readInt(); in VisitVarTemplateSpecializationDeclImpl()
2434 if (D->isCanonicalDecl()) { // It's kept in the folding set. in VisitVarTemplateSpecializationDeclImpl()
2436 if (auto *Partial = dyn_cast<VarTemplatePartialSpecializationDecl>(D)) { in VisitVarTemplateSpecializationDeclImpl()
2441 CanonPattern->getCommonPtr()->Specializations.GetOrInsertNode(D); in VisitVarTemplateSpecializationDeclImpl()
2444 if (CanonSpec != D) in VisitVarTemplateSpecializationDeclImpl()
2445 mergeRedeclarable<VarDecl>(D, CanonSpec, Redecl); in VisitVarTemplateSpecializationDeclImpl()
2458 VarTemplatePartialSpecializationDecl *D) { in VisitVarTemplatePartialSpecializationDecl() argument
2460 D->TemplateParams = Params; in VisitVarTemplatePartialSpecializationDecl()
2461 D->ArgsAsWritten = Record.readASTTemplateArgumentListInfo(); in VisitVarTemplatePartialSpecializationDecl()
2463 RedeclarableResult Redecl = VisitVarTemplateSpecializationDeclImpl(D); in VisitVarTemplatePartialSpecializationDecl()
2467 D->InstantiatedFromMember.setPointer( in VisitVarTemplatePartialSpecializationDecl()
2469 D->InstantiatedFromMember.setInt(Record.readInt()); in VisitVarTemplatePartialSpecializationDecl()
2473 void ASTDeclReader::VisitTemplateTypeParmDecl(TemplateTypeParmDecl *D) { in VisitTemplateTypeParmDecl() argument
2474 VisitTypeDecl(D); in VisitTemplateTypeParmDecl()
2476 D->setDeclaredWithTypename(Record.readInt()); in VisitTemplateTypeParmDecl()
2486 D->setTypeConstraint(NNS, DN, /*FoundDecl=*/nullptr, NamedConcept, in VisitTemplateTypeParmDecl()
2488 if ((D->ExpandedParameterPack = Record.readInt())) in VisitTemplateTypeParmDecl()
2489 D->NumExpanded = Record.readInt(); in VisitTemplateTypeParmDecl()
2493 D->setDefaultArgument(readTypeSourceInfo()); in VisitTemplateTypeParmDecl()
2496 void ASTDeclReader::VisitNonTypeTemplateParmDecl(NonTypeTemplateParmDecl *D) { in VisitNonTypeTemplateParmDecl() argument
2497 VisitDeclaratorDecl(D); in VisitNonTypeTemplateParmDecl()
2499 D->setDepth(Record.readInt()); in VisitNonTypeTemplateParmDecl()
2500 D->setPosition(Record.readInt()); in VisitNonTypeTemplateParmDecl()
2501 if (D->hasPlaceholderTypeConstraint()) in VisitNonTypeTemplateParmDecl()
2502 D->setPlaceholderTypeConstraint(Record.readExpr()); in VisitNonTypeTemplateParmDecl()
2503 if (D->isExpandedParameterPack()) { in VisitNonTypeTemplateParmDecl()
2505 D->getTrailingObjects<std::pair<QualType, TypeSourceInfo *>>(); in VisitNonTypeTemplateParmDecl()
2506 for (unsigned I = 0, N = D->getNumExpansionTypes(); I != N; ++I) { in VisitNonTypeTemplateParmDecl()
2512 D->ParameterPack = Record.readInt(); in VisitNonTypeTemplateParmDecl()
2514 D->setDefaultArgument(Record.readExpr()); in VisitNonTypeTemplateParmDecl()
2518 void ASTDeclReader::VisitTemplateTemplateParmDecl(TemplateTemplateParmDecl *D) { in VisitTemplateTemplateParmDecl() argument
2519 VisitTemplateDecl(D); in VisitTemplateTemplateParmDecl()
2521 D->setDepth(Record.readInt()); in VisitTemplateTemplateParmDecl()
2522 D->setPosition(Record.readInt()); in VisitTemplateTemplateParmDecl()
2523 if (D->isExpandedParameterPack()) { in VisitTemplateTemplateParmDecl()
2524 auto **Data = D->getTrailingObjects<TemplateParameterList *>(); in VisitTemplateTemplateParmDecl()
2525 for (unsigned I = 0, N = D->getNumExpansionTemplateParameters(); in VisitTemplateTemplateParmDecl()
2530 D->ParameterPack = Record.readInt(); in VisitTemplateTemplateParmDecl()
2532 D->setDefaultArgument(Reader.getContext(), in VisitTemplateTemplateParmDecl()
2537 void ASTDeclReader::VisitTypeAliasTemplateDecl(TypeAliasTemplateDecl *D) { in VisitTypeAliasTemplateDecl() argument
2538 VisitRedeclarableTemplateDecl(D); in VisitTypeAliasTemplateDecl()
2541 void ASTDeclReader::VisitStaticAssertDecl(StaticAssertDecl *D) { in VisitStaticAssertDecl() argument
2542 VisitDecl(D); in VisitStaticAssertDecl()
2543 D->AssertExprAndFailed.setPointer(Record.readExpr()); in VisitStaticAssertDecl()
2544 D->AssertExprAndFailed.setInt(Record.readInt()); in VisitStaticAssertDecl()
2545 D->Message = cast_or_null<StringLiteral>(Record.readExpr()); in VisitStaticAssertDecl()
2546 D->RParenLoc = readSourceLocation(); in VisitStaticAssertDecl()
2549 void ASTDeclReader::VisitEmptyDecl(EmptyDecl *D) { in VisitEmptyDecl() argument
2550 VisitDecl(D); in VisitEmptyDecl()
2554 LifetimeExtendedTemporaryDecl *D) { in VisitLifetimeExtendedTemporaryDecl() argument
2555 VisitDecl(D); in VisitLifetimeExtendedTemporaryDecl()
2556 D->ExtendingDecl = readDeclAs<ValueDecl>(); in VisitLifetimeExtendedTemporaryDecl()
2557 D->ExprWithTemporary = Record.readStmt(); in VisitLifetimeExtendedTemporaryDecl()
2559 D->Value = new (D->getASTContext()) APValue(Record.readAPValue()); in VisitLifetimeExtendedTemporaryDecl()
2560 D->getASTContext().addDestruction(D->Value); in VisitLifetimeExtendedTemporaryDecl()
2562 D->ManglingNumber = Record.readInt(); in VisitLifetimeExtendedTemporaryDecl()
2563 mergeMergeable(D); in VisitLifetimeExtendedTemporaryDecl()
2575 ASTDeclReader::VisitRedeclarable(Redeclarable<T> *D) { in VisitRedeclarable() argument
2612 if (FirstDecl != D) { in VisitRedeclarable()
2617 D->RedeclLink = Redeclarable<T>::PreviousDeclLink(FirstDecl); in VisitRedeclarable()
2618 D->First = FirstDecl->getCanonicalDecl(); in VisitRedeclarable()
2621 auto *DAsT = static_cast<T *>(D); in VisitRedeclarable()
2647 auto *D = static_cast<T *>(DBase); in mergeRedeclarable() local
2651 mergeRedeclarable(D, cast<T>(Existing), Redecl, TemplatePatternID); in mergeRedeclarable()
2652 else if (FindExistingResult ExistingRes = findExisting(D)) in mergeRedeclarable()
2654 mergeRedeclarable(D, Existing, Redecl, TemplatePatternID); in mergeRedeclarable()
2667 void ASTDeclReader::mergeTemplatePattern(RedeclarableTemplateDecl *D, in mergeTemplatePattern() argument
2670 auto *DPattern = D->getTemplatedDecl(); in mergeTemplatePattern()
2713 auto *D = static_cast<T *>(DBase); in mergeRedeclarable() local
2715 T *DCanon = D->getCanonicalDecl(); in mergeRedeclarable()
2723 D->RedeclLink = Redeclarable<T>::PreviousDeclLink(ExistingCanon); in mergeRedeclarable()
2724 D->First = ExistingCanon; in mergeRedeclarable()
2725 ExistingCanon->Used |= D->Used; in mergeRedeclarable()
2726 D->Used = false; in mergeRedeclarable()
2731 if (auto *Namespace = dyn_cast<NamespaceDecl>(D)) in mergeRedeclarable()
2736 if (auto *DTemplate = dyn_cast<RedeclarableTemplateDecl>(D)) in mergeRedeclarable()
2763 void ASTDeclReader::mergeMergeable(LifetimeExtendedTemporaryDecl *D) { in mergeMergeable() argument
2768 LifetimeExtendedTemporaryDecl *LETDecl = D; in mergeMergeable()
2785 void ASTDeclReader::mergeMergeable(Mergeable<T> *D) { in mergeMergeable() argument
2795 !allowODRLikeMergeInC(dyn_cast<NamedDecl>(static_cast<T*>(D)))) in mergeMergeable()
2798 if (FindExistingResult ExistingRes = findExisting(static_cast<T*>(D))) in mergeMergeable()
2800 Reader.getContext().setPrimaryMergedDecl(static_cast<T *>(D), in mergeMergeable()
2804 void ASTDeclReader::VisitOMPThreadPrivateDecl(OMPThreadPrivateDecl *D) { in VisitOMPThreadPrivateDecl() argument
2805 Record.readOMPChildren(D->Data); in VisitOMPThreadPrivateDecl()
2806 VisitDecl(D); in VisitOMPThreadPrivateDecl()
2809 void ASTDeclReader::VisitOMPAllocateDecl(OMPAllocateDecl *D) { in VisitOMPAllocateDecl() argument
2810 Record.readOMPChildren(D->Data); in VisitOMPAllocateDecl()
2811 VisitDecl(D); in VisitOMPAllocateDecl()
2814 void ASTDeclReader::VisitOMPRequiresDecl(OMPRequiresDecl * D) { in VisitOMPRequiresDecl() argument
2815 Record.readOMPChildren(D->Data); in VisitOMPRequiresDecl()
2816 VisitDecl(D); in VisitOMPRequiresDecl()
2819 void ASTDeclReader::VisitOMPDeclareReductionDecl(OMPDeclareReductionDecl *D) { in VisitOMPDeclareReductionDecl() argument
2820 VisitValueDecl(D); in VisitOMPDeclareReductionDecl()
2821 D->setLocation(readSourceLocation()); in VisitOMPDeclareReductionDecl()
2824 D->setCombinerData(In, Out); in VisitOMPDeclareReductionDecl()
2826 D->setCombiner(Combiner); in VisitOMPDeclareReductionDecl()
2829 D->setInitializerData(Orig, Priv); in VisitOMPDeclareReductionDecl()
2832 D->setInitializer(Init, IK); in VisitOMPDeclareReductionDecl()
2833 D->PrevDeclInScope = readDeclID(); in VisitOMPDeclareReductionDecl()
2836 void ASTDeclReader::VisitOMPDeclareMapperDecl(OMPDeclareMapperDecl *D) { in VisitOMPDeclareMapperDecl() argument
2837 Record.readOMPChildren(D->Data); in VisitOMPDeclareMapperDecl()
2838 VisitValueDecl(D); in VisitOMPDeclareMapperDecl()
2839 D->VarName = Record.readDeclarationName(); in VisitOMPDeclareMapperDecl()
2840 D->PrevDeclInScope = readDeclID(); in VisitOMPDeclareMapperDecl()
2843 void ASTDeclReader::VisitOMPCapturedExprDecl(OMPCapturedExprDecl *D) { in VisitOMPCapturedExprDecl() argument
2844 VisitVarDecl(D); in VisitOMPCapturedExprDecl()
2943 inline void ASTReader::LoadedDecl(unsigned Index, Decl *D) { in LoadedDecl() argument
2945 DeclsLoaded[Index] = D; in LoadedDecl()
2954 static bool isConsumerInterestedIn(ASTContext &Ctx, Decl *D, bool HasBody) { in isConsumerInterestedIn() argument
2960 if (isPartOfPerModuleInitializer(D)) { in isConsumerInterestedIn()
2961 auto *M = D->getImportedOwningModule(); in isConsumerInterestedIn()
2963 Ctx.DeclMustBeEmitted(D)) in isConsumerInterestedIn()
2967 if (isa<FileScopeAsmDecl>(D) || in isConsumerInterestedIn()
2968 isa<ObjCProtocolDecl>(D) || in isConsumerInterestedIn()
2969 isa<ObjCImplDecl>(D) || in isConsumerInterestedIn()
2970 isa<ImportDecl>(D) || in isConsumerInterestedIn()
2971 isa<PragmaCommentDecl>(D) || in isConsumerInterestedIn()
2972 isa<PragmaDetectMismatchDecl>(D)) in isConsumerInterestedIn()
2974 if (isa<OMPThreadPrivateDecl>(D) || isa<OMPDeclareReductionDecl>(D) || in isConsumerInterestedIn()
2975 isa<OMPDeclareMapperDecl>(D) || isa<OMPAllocateDecl>(D) || in isConsumerInterestedIn()
2976 isa<OMPRequiresDecl>(D)) in isConsumerInterestedIn()
2977 return !D->getDeclContext()->isFunctionOrMethod(); in isConsumerInterestedIn()
2978 if (const auto *Var = dyn_cast<VarDecl>(D)) in isConsumerInterestedIn()
2982 if (const auto *Func = dyn_cast<FunctionDecl>(D)) in isConsumerInterestedIn()
2985 if (auto *ES = D->getASTContext().getExternalSource()) in isConsumerInterestedIn()
2986 if (ES->hasExternalDefinitions(D) == ExternalASTSource::EK_Never) in isConsumerInterestedIn()
3130 for (auto *D : merged_redecls(cast<Decl>(LexicalDC))) { in getPrimaryDCForAnonymousDecl() local
3131 if (auto *FD = dyn_cast<FunctionDecl>(D)) in getPrimaryDCForAnonymousDecl()
3134 if (auto *MD = dyn_cast<ObjCMethodDecl>(D)) in getPrimaryDCForAnonymousDecl()
3137 if (auto *RD = dyn_cast<RecordDecl>(D)) in getPrimaryDCForAnonymousDecl()
3175 NamedDecl *D) { in setAnonymousDeclForMerging() argument
3182 Previous[Index] = D; in setAnonymousDeclForMerging()
3185 ASTDeclReader::FindExistingResult ASTDeclReader::findExisting(NamedDecl *D) { in findExisting() argument
3187 : D->getDeclName(); in findExisting()
3189 if (!Name && !needsAnonymousDeclarationNumber(D)) { in findExisting()
3192 FindExistingResult Result(Reader, D, /*Existing=*/nullptr, in findExisting()
3199 DeclContext *DC = D->getDeclContext()->getRedeclContext(); in findExisting()
3204 if (C.isSameEntity(It->second, D)) in findExisting()
3205 return FindExistingResult(Reader, D, It->second, AnonymousDeclNumber, in findExisting()
3211 if (needsAnonymousDeclarationNumber(D)) { in findExisting()
3215 Reader, D->getLexicalDeclContext(), AnonymousDeclNumber)) in findExisting()
3216 if (C.isSameEntity(Existing, D)) in findExisting()
3217 return FindExistingResult(Reader, D, Existing, AnonymousDeclNumber, in findExisting()
3248 if (C.isSameEntity(Existing, D)) in findExisting()
3249 return FindExistingResult(Reader, D, Existing, AnonymousDeclNumber, in findExisting()
3256 if (C.isSameEntity(Existing, D)) in findExisting()
3257 return FindExistingResult(Reader, D, Existing, AnonymousDeclNumber, in findExisting()
3270 auto MergedDCIt = Reader.MergedDeclContexts.find(D->getLexicalDeclContext()); in findExisting()
3272 MergedDCIt->second == D->getDeclContext()) in findExisting()
3273 Reader.PendingOdrMergeChecks.push_back(D); in findExisting()
3275 return FindExistingResult(Reader, D, /*Existing=*/nullptr, in findExisting()
3280 Decl *ASTDeclReader::getMostRecentDeclImpl(Redeclarable<DeclT> *D) { in getMostRecentDeclImpl() argument
3281 return D->RedeclLink.getLatestNotUpdated(); in getMostRecentDeclImpl()
3288 Decl *ASTDeclReader::getMostRecentDecl(Decl *D) { in getMostRecentDecl() argument
3289 assert(D); in getMostRecentDecl()
3291 switch (D->getKind()) { in getMostRecentDecl()
3295 return getMostRecentDeclImpl(cast<TYPE##Decl>(D)); in getMostRecentDecl()
3301 Decl *ASTReader::getMostRecentExistingDecl(Decl *D) { in getMostRecentExistingDecl() argument
3302 return ASTDeclReader::getMostRecentDecl(D->getCanonicalDecl()); in getMostRecentExistingDecl()
3305 void ASTDeclReader::mergeInheritableAttributes(ASTReader &Reader, Decl *D, in mergeInheritableAttributes() argument
3311 if (IA && !D->hasAttr<MSInheritanceAttr>()) { in mergeInheritableAttributes()
3314 D->addAttr(NewAttr); in mergeInheritableAttributes()
3318 if (AA && !D->hasAttr<AvailabilityAttr>()) { in mergeInheritableAttributes()
3321 D->addAttr(NewAttr); in mergeInheritableAttributes()
3327 Redeclarable<DeclT> *D, in attachPreviousDeclImpl() argument
3329 D->RedeclLink.setPrevious(cast<DeclT>(Previous)); in attachPreviousDeclImpl()
3330 D->First = cast<DeclT>(Previous)->First; in attachPreviousDeclImpl()
3337 Redeclarable<VarDecl> *D, in attachPreviousDeclImpl() argument
3339 auto *VD = static_cast<VarDecl *>(D); in attachPreviousDeclImpl()
3341 D->RedeclLink.setPrevious(PrevVD); in attachPreviousDeclImpl()
3342 D->First = PrevVD->First; in attachPreviousDeclImpl()
3365 Redeclarable<FunctionDecl> *D, in attachPreviousDeclImpl() argument
3367 auto *FD = static_cast<FunctionDecl *>(D); in attachPreviousDeclImpl()
3456 void ASTDeclReader::attachPreviousDecl(ASTReader &Reader, Decl *D, in attachPreviousDecl() argument
3458 assert(D && Previous); in attachPreviousDecl()
3460 switch (D->getKind()) { in attachPreviousDecl()
3464 attachPreviousDeclImpl(Reader, cast<TYPE##Decl>(D), Previous, Canon); \ in attachPreviousDecl()
3474 D->IdentifierNamespace |= in attachPreviousDecl()
3480 if (auto *TD = dyn_cast<TemplateDecl>(D)) in attachPreviousDecl()
3488 mergeInheritableAttributes(Reader, D, Previous); in attachPreviousDecl()
3492 void ASTDeclReader::attachLatestDeclImpl(Redeclarable<DeclT> *D, Decl *Latest) { in attachLatestDeclImpl() argument
3493 D->RedeclLink.setLatest(cast<DeclT>(Latest)); in attachLatestDeclImpl()
3500 void ASTDeclReader::attachLatestDecl(Decl *D, Decl *Latest) { in attachLatestDecl() argument
3501 assert(D && Latest); in attachLatestDecl()
3503 switch (D->getKind()) { in attachLatestDecl()
3507 attachLatestDeclImpl(cast<TYPE##Decl>(D), Latest); \ in attachLatestDecl()
3514 void ASTDeclReader::markIncompleteDeclChainImpl(Redeclarable<DeclT> *D) { in markIncompleteDeclChainImpl() argument
3515 D->RedeclLink.markIncomplete(); in markIncompleteDeclChainImpl()
3522 void ASTReader::markIncompleteDeclChain(Decl *D) { in markIncompleteDeclChain() argument
3523 switch (D->getKind()) { in markIncompleteDeclChain()
3527 ASTDeclReader::markIncompleteDeclChainImpl(cast<TYPE##Decl>(D)); \ in markIncompleteDeclChain()
3563 Decl *D = nullptr; in ReadDeclRecord() local
3574 D = TypedefDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3577 D = TypeAliasDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3580 D = EnumDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3583 D = RecordDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3586 D = EnumConstantDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3589 D = FunctionDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3592 D = LinkageSpecDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3595 D = ExportDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3598 D = LabelDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3601 D = NamespaceDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3604 D = NamespaceAliasDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3607 D = UsingDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3610 D = UsingPackDecl::CreateDeserialized(Context, ID, Record.readInt()); in ReadDeclRecord()
3613 D = UsingShadowDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3616 D = UsingEnumDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3619 D = ConstructorUsingShadowDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3622 D = UsingDirectiveDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3625 D = UnresolvedUsingValueDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3628 D = UnresolvedUsingTypenameDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3631 D = UnresolvedUsingIfExistsDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3634 D = CXXRecordDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3637 D = CXXDeductionGuideDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3640 D = CXXMethodDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3643 D = CXXConstructorDecl::CreateDeserialized(Context, ID, Record.readInt()); in ReadDeclRecord()
3646 D = CXXDestructorDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3649 D = CXXConversionDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3652 D = AccessSpecDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3655 D = FriendDecl::CreateDeserialized(Context, ID, Record.readInt()); in ReadDeclRecord()
3658 D = FriendTemplateDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3661 D = ClassTemplateDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3664 D = ClassTemplateSpecializationDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3667 D = ClassTemplatePartialSpecializationDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3670 D = VarTemplateDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3673 D = VarTemplateSpecializationDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3676 D = VarTemplatePartialSpecializationDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3679 D = ClassScopeFunctionSpecializationDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3682 D = FunctionTemplateDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3686 D = TemplateTypeParmDecl::CreateDeserialized(Context, ID, in ReadDeclRecord()
3692 D = NonTypeTemplateParmDecl::CreateDeserialized(Context, ID, in ReadDeclRecord()
3698 D = NonTypeTemplateParmDecl::CreateDeserialized(Context, ID, in ReadDeclRecord()
3704 D = TemplateTemplateParmDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3707 D = TemplateTemplateParmDecl::CreateDeserialized(Context, ID, in ReadDeclRecord()
3711 D = TypeAliasTemplateDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3714 D = ConceptDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3717 D = RequiresExprBodyDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3720 D = StaticAssertDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3723 D = ObjCMethodDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3726 D = ObjCInterfaceDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3729 D = ObjCIvarDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3732 D = ObjCProtocolDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3735 D = ObjCAtDefsFieldDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3738 D = ObjCCategoryDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3741 D = ObjCCategoryImplDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3744 D = ObjCImplementationDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3747 D = ObjCCompatibleAliasDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3750 D = ObjCPropertyDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3753 D = ObjCPropertyImplDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3756 D = FieldDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3759 D = IndirectFieldDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3762 D = VarDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3765 D = ImplicitParamDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3768 D = ParmVarDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3771 D = DecompositionDecl::CreateDeserialized(Context, ID, Record.readInt()); in ReadDeclRecord()
3774 D = BindingDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3777 D = FileScopeAsmDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3780 D = BlockDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3783 D = MSPropertyDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3786 D = MSGuidDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3789 D = UnnamedGlobalConstantDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3792 D = TemplateParamObjectDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3795 D = CapturedDecl::CreateDeserialized(Context, ID, Record.readInt()); in ReadDeclRecord()
3806 D = ImportDecl::CreateDeserialized(Context, ID, Record.back()); in ReadDeclRecord()
3812 D = OMPThreadPrivateDecl::CreateDeserialized(Context, ID, NumChildren); in ReadDeclRecord()
3819 D = OMPAllocateDecl::CreateDeserialized(Context, ID, NumVars, NumClauses); in ReadDeclRecord()
3825 D = OMPRequiresDecl::CreateDeserialized(Context, ID, NumClauses); in ReadDeclRecord()
3829 D = OMPDeclareReductionDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3834 D = OMPDeclareMapperDecl::CreateDeserialized(Context, ID, NumClauses); in ReadDeclRecord()
3838 D = OMPCapturedExprDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3841 D = PragmaCommentDecl::CreateDeserialized(Context, ID, Record.readInt()); in ReadDeclRecord()
3844 D = PragmaDetectMismatchDecl::CreateDeserialized(Context, ID, in ReadDeclRecord()
3848 D = EmptyDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3851 D = LifetimeExtendedTemporaryDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3854 D = ObjCTypeParamDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3858 assert(D && "Unknown declaration reading AST file"); in ReadDeclRecord()
3859 LoadedDecl(Index, D); in ReadDeclRecord()
3863 D->setDeclContext(Context.getTranslationUnitDecl()); in ReadDeclRecord()
3864 Reader.Visit(D); in ReadDeclRecord()
3868 if (auto *DC = dyn_cast<DeclContext>(D)) { in ReadDeclRecord()
3881 PendingUpdateRecord(ID, D, /*JustLoaded=*/true)); in ReadDeclRecord()
3884 if (auto *Class = dyn_cast<ObjCInterfaceDecl>(D)) in ReadDeclRecord()
3896 InterestingDecl(D, Reader.hasPendingBody())); in ReadDeclRecord()
3898 return D; in ReadDeclRecord()
3919 InterestingDecl D = PotentiallyInterestingDecls.front(); in PassInterestingDeclsToConsumer() local
3921 if (isConsumerInterestedIn(getContext(), D.getDecl(), D.hasPendingBody())) in PassInterestingDeclsToConsumer()
3922 PassInterestingDeclToConsumer(D.getDecl()); in PassInterestingDeclsToConsumer()
3931 Decl *D = Record.D; in loadDeclUpdateRecords() local
3946 Record.JustLoaded || isConsumerInterestedIn(getContext(), D, false); in loadDeclUpdateRecords()
3974 Reader.UpdateDecl(D, PendingLazySpecializationIDs); in loadDeclUpdateRecords()
3979 isConsumerInterestedIn(getContext(), D, Reader.hasPendingBody())) { in loadDeclUpdateRecords()
3981 InterestingDecl(D, Reader.hasPendingBody())); in loadDeclUpdateRecords()
3987 assert((PendingLazySpecializationIDs.empty() || isa<ClassTemplateDecl>(D) || in loadDeclUpdateRecords()
3988 isa<FunctionTemplateDecl>(D) || isa<VarTemplateDecl>(D)) && in loadDeclUpdateRecords()
3990 if (auto *CTD = dyn_cast<ClassTemplateDecl>(D)) in loadDeclUpdateRecords()
3992 else if (auto *FTD = dyn_cast<FunctionTemplateDecl>(D)) in loadDeclUpdateRecords()
3994 else if (auto *VTD = dyn_cast<VarTemplateDecl>(D)) in loadDeclUpdateRecords()
4004 auto *DC = cast<DeclContext>(D)->getPrimaryContext(); in loadDeclUpdateRecords()
4058 auto *D = GetLocalDecl(*M, Record[N - I - 1]); in loadPendingDeclChain() local
4059 ASTDeclReader::attachPreviousDecl(*this, D, MostRecent, CanonDecl); in loadPendingDeclChain()
4060 MostRecent = D; in loadPendingDeclChain()
4177 ObjCInterfaceDecl *D, in loadObjCCategories() argument
4179 ObjCCategoriesVisitor Visitor(*this, D, CategoriesDeserialized, ID, in loadObjCCategories()
4185 static void forAllLaterRedecls(DeclT *D, Fn F) { in forAllLaterRedecls() argument
4186 F(D); in forAllLaterRedecls()
4191 auto *MostRecent = D->getMostRecentDecl(); in forAllLaterRedecls()
4195 Found = (Redecl == D); in forAllLaterRedecls()
4199 for (auto *Redecl = MostRecent; Redecl != D; in forAllLaterRedecls()
4205 void ASTDeclReader::UpdateDecl(Decl *D, in UpdateDecl() argument
4210 auto *RD = cast<CXXRecordDecl>(D); in UpdateDecl()
4233 if (auto *TU = dyn_cast<TranslationUnitDecl>(D)) in UpdateDecl()
4236 cast<NamespaceDecl>(D)->setAnonymousNamespace(Anon); in UpdateDecl()
4242 auto *VD = cast<VarDecl>(D); in UpdateDecl()
4259 if (auto *VTSD = dyn_cast<VarTemplateSpecializationDecl>(D)) { in UpdateDecl()
4261 } else if (auto *VD = dyn_cast<VarDecl>(D)) { in UpdateDecl()
4264 auto *FD = cast<FunctionDecl>(D); in UpdateDecl()
4276 auto *Param = cast<ParmVarDecl>(D); in UpdateDecl()
4291 auto *FD = cast<FieldDecl>(D); in UpdateDecl()
4308 auto *FD = cast<FunctionDecl>(D); in UpdateDecl()
4330 auto *RD = cast<CXXRecordDecl>(D); in UpdateDecl()
4384 if (!D->hasAttrs()) in UpdateDecl()
4385 D->setAttrsImpl(Attrs, Reader.getContext()); in UpdateDecl()
4394 auto *First = cast<CXXDestructorDecl>(D->getCanonicalDecl()); in UpdateDecl()
4409 auto *FD = cast<FunctionDecl>(D); in UpdateDecl()
4427 auto *FD = cast<FunctionDecl>(D); in UpdateDecl()
4436 D->markUsed(Reader.getContext()); in UpdateDecl()
4440 Reader.getContext().setManglingNumber(cast<NamedDecl>(D), in UpdateDecl()
4445 Reader.getContext().setStaticLocalNumber(cast<VarDecl>(D), in UpdateDecl()
4450 D->addAttr(OMPThreadPrivateDeclAttr::CreateImplicit( in UpdateDecl()
4461 D->addAttr(OMPAllocateDeclAttr::CreateImplicit( in UpdateDecl()
4469 auto *Exported = cast<NamedDecl>(D); in UpdateDecl()
4482 D->addAttr(OMPDeclareTargetDeclAttr::CreateImplicit( in UpdateDecl()
4492 D->addAttr(Attrs[0]); in UpdateDecl()