Lines Matching refs:D
159 void ReadCXXRecordDefinition(CXXRecordDecl *D, bool Update);
161 const CXXRecordDecl *D);
162 void MergeDefinitionData(CXXRecordDecl *D,
165 void MergeDefinitionData(ObjCInterfaceDecl *D,
168 void MergeDefinitionData(ObjCProtocolDecl *D,
177 unsigned Index, NamedDecl *D);
246 FindExistingResult findExisting(NamedDecl *D);
256 void AddLazySpecializations(T *D, in AddLazySpecializations() argument
262 ASTContext &C = D->getASTContext(); in AddLazySpecializations()
264 auto *&LazySpecializations = D->getCommonPtr()->LazySpecializations; in AddLazySpecializations()
280 static Decl *getMostRecentDeclImpl(Redeclarable<DeclT> *D);
282 static Decl *getMostRecentDecl(Decl *D);
284 static void mergeInheritableAttributes(ASTReader &Reader, Decl *D,
289 Redeclarable<DeclT> *D, Decl *Previous,
292 static void attachPreviousDecl(ASTReader &Reader, Decl *D, Decl *Previous,
296 static void attachLatestDeclImpl(Redeclarable<DeclT> *D, Decl *Latest);
298 static void attachLatestDecl(Decl *D, Decl *latest);
301 static void markIncompleteDeclChainImpl(Redeclarable<DeclT> *D);
308 void Visit(Decl *D);
310 void UpdateDecl(Decl *D, SmallVectorImpl<serialization::DeclID> &);
317 void VisitDecl(Decl *D);
318 void VisitPragmaCommentDecl(PragmaCommentDecl *D);
319 void VisitPragmaDetectMismatchDecl(PragmaDetectMismatchDecl *D);
323 void VisitNamespaceDecl(NamespaceDecl *D);
324 void VisitUsingDirectiveDecl(UsingDirectiveDecl *D);
325 void VisitNamespaceAliasDecl(NamespaceAliasDecl *D);
330 void VisitUnresolvedUsingTypenameDecl(UnresolvedUsingTypenameDecl *D);
331 void VisitUnresolvedUsingIfExistsDecl(UnresolvedUsingIfExistsDecl *D);
336 RedeclarableResult VisitCXXRecordDeclImpl(CXXRecordDecl *D);
337 void VisitCXXRecordDecl(CXXRecordDecl *D) { VisitCXXRecordDeclImpl(D); } in VisitCXXRecordDecl() argument
339 ClassTemplateSpecializationDecl *D);
342 ClassTemplateSpecializationDecl *D) { in VisitClassTemplateSpecializationDecl() argument
343 VisitClassTemplateSpecializationDeclImpl(D); in VisitClassTemplateSpecializationDecl()
347 ClassTemplatePartialSpecializationDecl *D);
349 ClassScopeFunctionSpecializationDecl *D);
351 VisitVarTemplateSpecializationDeclImpl(VarTemplateSpecializationDecl *D);
353 void VisitVarTemplateSpecializationDecl(VarTemplateSpecializationDecl *D) { in VisitVarTemplateSpecializationDecl() argument
354 VisitVarTemplateSpecializationDeclImpl(D); in VisitVarTemplateSpecializationDecl()
358 VarTemplatePartialSpecializationDecl *D);
359 void VisitTemplateTypeParmDecl(TemplateTypeParmDecl *D);
362 void VisitUnresolvedUsingValueDecl(UnresolvedUsingValueDecl *D);
366 void VisitCXXMethodDecl(CXXMethodDecl *D);
367 void VisitCXXConstructorDecl(CXXConstructorDecl *D);
368 void VisitCXXDestructorDecl(CXXDestructorDecl *D);
369 void VisitCXXConversionDecl(CXXConversionDecl *D);
372 void VisitMSGuidDecl(MSGuidDecl *D);
373 void VisitTemplateParamObjectDecl(TemplateParamObjectDecl *D);
375 RedeclarableResult VisitVarDeclImpl(VarDecl *D);
381 void VisitNonTypeTemplateParmDecl(NonTypeTemplateParmDecl *D);
382 DeclID VisitTemplateDecl(TemplateDecl *D);
383 void VisitConceptDecl(ConceptDecl *D);
384 void VisitRequiresExprBodyDecl(RequiresExprBodyDecl *D);
385 RedeclarableResult VisitRedeclarableTemplateDecl(RedeclarableTemplateDecl *D);
386 void VisitClassTemplateDecl(ClassTemplateDecl *D);
387 void VisitBuiltinTemplateDecl(BuiltinTemplateDecl *D);
388 void VisitVarTemplateDecl(VarTemplateDecl *D);
389 void VisitFunctionTemplateDecl(FunctionTemplateDecl *D);
390 void VisitTemplateTemplateParmDecl(TemplateTemplateParmDecl *D);
391 void VisitTypeAliasTemplateDecl(TypeAliasTemplateDecl *D);
392 void VisitUsingDecl(UsingDecl *D);
393 void VisitUsingEnumDecl(UsingEnumDecl *D);
394 void VisitUsingPackDecl(UsingPackDecl *D);
395 void VisitUsingShadowDecl(UsingShadowDecl *D);
396 void VisitConstructorUsingShadowDecl(ConstructorUsingShadowDecl *D);
397 void VisitLinkageSpecDecl(LinkageSpecDecl *D);
398 void VisitExportDecl(ExportDecl *D);
400 void VisitImportDecl(ImportDecl *D);
401 void VisitAccessSpecDecl(AccessSpecDecl *D);
402 void VisitFriendDecl(FriendDecl *D);
403 void VisitFriendTemplateDecl(FriendTemplateDecl *D);
404 void VisitStaticAssertDecl(StaticAssertDecl *D);
407 void VisitEmptyDecl(EmptyDecl *D);
408 void VisitLifetimeExtendedTemporaryDecl(LifetimeExtendedTemporaryDecl *D);
413 RedeclarableResult VisitRedeclarable(Redeclarable<T> *D);
416 void mergeRedeclarable(Redeclarable<T> *D, RedeclarableResult &Redecl,
420 void mergeRedeclarable(Redeclarable<T> *D, T *Existing,
425 void mergeMergeable(Mergeable<T> *D);
427 void mergeMergeable(LifetimeExtendedTemporaryDecl *D);
429 void mergeTemplatePattern(RedeclarableTemplateDecl *D,
436 void VisitObjCMethodDecl(ObjCMethodDecl *D);
437 void VisitObjCTypeParamDecl(ObjCTypeParamDecl *D);
438 void VisitObjCContainerDecl(ObjCContainerDecl *D);
439 void VisitObjCInterfaceDecl(ObjCInterfaceDecl *D);
440 void VisitObjCIvarDecl(ObjCIvarDecl *D);
441 void VisitObjCProtocolDecl(ObjCProtocolDecl *D);
442 void VisitObjCAtDefsFieldDecl(ObjCAtDefsFieldDecl *D);
443 void VisitObjCCategoryDecl(ObjCCategoryDecl *D);
444 void VisitObjCImplDecl(ObjCImplDecl *D);
445 void VisitObjCCategoryImplDecl(ObjCCategoryImplDecl *D);
446 void VisitObjCImplementationDecl(ObjCImplementationDecl *D);
447 void VisitObjCCompatibleAliasDecl(ObjCCompatibleAliasDecl *D);
448 void VisitObjCPropertyDecl(ObjCPropertyDecl *D);
449 void VisitObjCPropertyImplDecl(ObjCPropertyImplDecl *D);
450 void VisitOMPThreadPrivateDecl(OMPThreadPrivateDecl *D);
451 void VisitOMPAllocateDecl(OMPAllocateDecl *D);
452 void VisitOMPDeclareReductionDecl(OMPDeclareReductionDecl *D);
453 void VisitOMPDeclareMapperDecl(OMPDeclareMapperDecl *D);
454 void VisitOMPRequiresDecl(OMPRequiresDecl *D);
455 void VisitOMPCapturedExprDecl(OMPCapturedExprDecl *D);
502 merged_redecls(DeclT *D) { in merged_redecls() argument
503 return llvm::make_range(MergedRedeclIterator<DeclT>(D), in merged_redecls()
527 void ASTDeclReader::Visit(Decl *D) { in Visit() argument
528 DeclVisitor<ASTDeclReader, void>::Visit(D); in Visit()
532 D->getCanonicalDecl()->Used |= IsDeclMarkedUsed; in Visit()
535 if (auto *DD = dyn_cast<DeclaratorDecl>(D)) { in Visit()
540 if (auto *TD = dyn_cast<TypeDecl>(D)) { in Visit()
547 cast<TagDecl>(D)->TypedefNameDeclOrQualifier = in Visit()
549 } else if (auto *ID = dyn_cast<ObjCInterfaceDecl>(D)) { in Visit()
552 } else if (auto *FD = dyn_cast<FunctionDecl>(D)) { in Visit()
562 void ASTDeclReader::VisitDecl(Decl *D) { in VisitDecl() argument
563 if (D->isTemplateParameter() || D->isTemplateParameterPack() || in VisitDecl()
564 isa<ParmVarDecl>(D) || isa<ObjCTypeParamDecl>(D)) { in VisitDecl()
575 Reader.addPendingDeclContextInfo(D, in VisitDecl()
578 D->setDeclContext(Reader.getContext().getTranslationUnitDecl()); in VisitDecl()
587 D->setDeclContextsImpl(MergedSemaDC ? MergedSemaDC : SemaDC, LexicalDC, in VisitDecl()
590 D->setLocation(ThisDeclLoc); in VisitDecl()
591 D->InvalidDecl = Record.readInt(); in VisitDecl()
597 D->setAttrsImpl(Attrs, Reader.getContext()); in VisitDecl()
599 D->setImplicit(Record.readInt()); in VisitDecl()
600 D->Used = Record.readInt(); in VisitDecl()
601 IsDeclMarkedUsed |= D->Used; in VisitDecl()
602 D->setReferenced(Record.readInt()); in VisitDecl()
603 D->setTopLevelDeclInObjCContainer(Record.readInt()); in VisitDecl()
604 D->setAccess((AccessSpecifier)Record.readInt()); in VisitDecl()
605 D->FromASTFile = true; in VisitDecl()
612 D->setModuleOwnershipKind( in VisitDecl()
615 D->setOwningModuleID(SubmoduleID); in VisitDecl()
626 D->setVisibleDespiteOwningModule(); in VisitDecl()
628 Reader.HiddenNamesMap[Owner].push_back(D); in VisitDecl()
631 D->setModuleOwnershipKind(Decl::ModuleOwnershipKind::ModulePrivate); in VisitDecl()
635 void ASTDeclReader::VisitPragmaCommentDecl(PragmaCommentDecl *D) { in VisitPragmaCommentDecl() argument
636 VisitDecl(D); in VisitPragmaCommentDecl()
637 D->setLocation(readSourceLocation()); in VisitPragmaCommentDecl()
638 D->CommentKind = (PragmaMSCommentKind)Record.readInt(); in VisitPragmaCommentDecl()
640 memcpy(D->getTrailingObjects<char>(), Arg.data(), Arg.size()); in VisitPragmaCommentDecl()
641 D->getTrailingObjects<char>()[Arg.size()] = '\0'; in VisitPragmaCommentDecl()
644 void ASTDeclReader::VisitPragmaDetectMismatchDecl(PragmaDetectMismatchDecl *D) { in VisitPragmaDetectMismatchDecl() argument
645 VisitDecl(D); in VisitPragmaDetectMismatchDecl()
646 D->setLocation(readSourceLocation()); in VisitPragmaDetectMismatchDecl()
648 memcpy(D->getTrailingObjects<char>(), Name.data(), Name.size()); in VisitPragmaDetectMismatchDecl()
649 D->getTrailingObjects<char>()[Name.size()] = '\0'; in VisitPragmaDetectMismatchDecl()
651 D->ValueStart = Name.size() + 1; in VisitPragmaDetectMismatchDecl()
653 memcpy(D->getTrailingObjects<char>() + D->ValueStart, Value.data(), in VisitPragmaDetectMismatchDecl()
655 D->getTrailingObjects<char>()[D->ValueStart + Value.size()] = '\0'; in VisitPragmaDetectMismatchDecl()
767 for (auto *D : merged_redecls(ED->getCanonicalDecl())) { in VisitEnumDecl() local
768 if (!D->isFromASTFile() && D->isCompleteDefinition()) { in VisitEnumDecl()
769 OldDef = D; in VisitEnumDecl()
1082 void ASTDeclReader::VisitObjCTypeParamDecl(ObjCTypeParamDecl *D) { in VisitObjCTypeParamDecl() argument
1083 VisitTypedefNameDecl(D); in VisitObjCTypeParamDecl()
1085 D->Variance = Record.readInt(); in VisitObjCTypeParamDecl()
1086 D->Index = Record.readInt(); in VisitObjCTypeParamDecl()
1087 D->VarianceLoc = readSourceLocation(); in VisitObjCTypeParamDecl()
1088 D->ColonLoc = readSourceLocation(); in VisitObjCTypeParamDecl()
1150 void ASTDeclReader::MergeDefinitionData(ObjCInterfaceDecl *D, in MergeDefinitionData() argument
1216 void ASTDeclReader::MergeDefinitionData(ObjCProtocolDecl *D, in MergeDefinitionData() argument
1291 void ASTDeclReader::VisitObjCPropertyDecl(ObjCPropertyDecl *D) { in VisitObjCPropertyDecl() argument
1292 VisitNamedDecl(D); in VisitObjCPropertyDecl()
1293 D->setAtLoc(readSourceLocation()); in VisitObjCPropertyDecl()
1294 D->setLParenLoc(readSourceLocation()); in VisitObjCPropertyDecl()
1297 D->setType(T, TSI); in VisitObjCPropertyDecl()
1298 D->setPropertyAttributes((ObjCPropertyAttribute::Kind)Record.readInt()); in VisitObjCPropertyDecl()
1299 D->setPropertyAttributesAsWritten( in VisitObjCPropertyDecl()
1301 D->setPropertyImplementation( in VisitObjCPropertyDecl()
1305 D->setGetterName(GetterName.getObjCSelector(), GetterLoc); in VisitObjCPropertyDecl()
1308 D->setSetterName(SetterName.getObjCSelector(), SetterLoc); in VisitObjCPropertyDecl()
1309 D->setGetterMethodDecl(readDeclAs<ObjCMethodDecl>()); in VisitObjCPropertyDecl()
1310 D->setSetterMethodDecl(readDeclAs<ObjCMethodDecl>()); in VisitObjCPropertyDecl()
1311 D->setPropertyIvarDecl(readDeclAs<ObjCIvarDecl>()); in VisitObjCPropertyDecl()
1314 void ASTDeclReader::VisitObjCImplDecl(ObjCImplDecl *D) { in VisitObjCImplDecl() argument
1315 VisitObjCContainerDecl(D); in VisitObjCImplDecl()
1316 D->setClassInterface(readDeclAs<ObjCInterfaceDecl>()); in VisitObjCImplDecl()
1319 void ASTDeclReader::VisitObjCCategoryImplDecl(ObjCCategoryImplDecl *D) { in VisitObjCCategoryImplDecl() argument
1320 VisitObjCImplDecl(D); in VisitObjCCategoryImplDecl()
1321 D->CategoryNameLoc = readSourceLocation(); in VisitObjCCategoryImplDecl()
1324 void ASTDeclReader::VisitObjCImplementationDecl(ObjCImplementationDecl *D) { in VisitObjCImplementationDecl() argument
1325 VisitObjCImplDecl(D); in VisitObjCImplementationDecl()
1326 D->setSuperClass(readDeclAs<ObjCInterfaceDecl>()); in VisitObjCImplementationDecl()
1327 D->SuperLoc = readSourceLocation(); in VisitObjCImplementationDecl()
1328 D->setIvarLBraceLoc(readSourceLocation()); in VisitObjCImplementationDecl()
1329 D->setIvarRBraceLoc(readSourceLocation()); in VisitObjCImplementationDecl()
1330 D->setHasNonZeroConstructors(Record.readInt()); in VisitObjCImplementationDecl()
1331 D->setHasDestructors(Record.readInt()); in VisitObjCImplementationDecl()
1332 D->NumIvarInitializers = Record.readInt(); in VisitObjCImplementationDecl()
1333 if (D->NumIvarInitializers) in VisitObjCImplementationDecl()
1334 D->IvarInitializers = ReadGlobalOffset(); in VisitObjCImplementationDecl()
1337 void ASTDeclReader::VisitObjCPropertyImplDecl(ObjCPropertyImplDecl *D) { in VisitObjCPropertyImplDecl() argument
1338 VisitDecl(D); in VisitObjCPropertyImplDecl()
1339 D->setAtLoc(readSourceLocation()); in VisitObjCPropertyImplDecl()
1340 D->setPropertyDecl(readDeclAs<ObjCPropertyDecl>()); in VisitObjCPropertyImplDecl()
1341 D->PropertyIvarDecl = readDeclAs<ObjCIvarDecl>(); in VisitObjCPropertyImplDecl()
1342 D->IvarLoc = readSourceLocation(); in VisitObjCPropertyImplDecl()
1343 D->setGetterMethodDecl(readDeclAs<ObjCMethodDecl>()); in VisitObjCPropertyImplDecl()
1344 D->setSetterMethodDecl(readDeclAs<ObjCMethodDecl>()); in VisitObjCPropertyImplDecl()
1345 D->setGetterCXXConstructor(Record.readExpr()); in VisitObjCPropertyImplDecl()
1346 D->setSetterCXXAssignment(Record.readExpr()); in VisitObjCPropertyImplDecl()
1376 void ASTDeclReader::VisitMSGuidDecl(MSGuidDecl *D) { in VisitMSGuidDecl() argument
1377 VisitValueDecl(D); in VisitMSGuidDecl()
1378 D->PartVal.Part1 = Record.readInt(); in VisitMSGuidDecl()
1379 D->PartVal.Part2 = Record.readInt(); in VisitMSGuidDecl()
1380 D->PartVal.Part3 = Record.readInt(); in VisitMSGuidDecl()
1381 for (auto &C : D->PartVal.Part4And5) in VisitMSGuidDecl()
1385 if (MSGuidDecl *Existing = Reader.getContext().MSGuidDecls.GetOrInsertNode(D)) in VisitMSGuidDecl()
1386 Reader.getContext().setPrimaryMergedDecl(D, Existing->getCanonicalDecl()); in VisitMSGuidDecl()
1389 void ASTDeclReader::VisitTemplateParamObjectDecl(TemplateParamObjectDecl *D) { in VisitTemplateParamObjectDecl() argument
1390 VisitValueDecl(D); in VisitTemplateParamObjectDecl()
1391 D->Value = Record.readAPValue(); in VisitTemplateParamObjectDecl()
1396 Reader.getContext().TemplateParamObjectDecls.GetOrInsertNode(D)) in VisitTemplateParamObjectDecl()
1397 Reader.getContext().setPrimaryMergedDecl(D, Existing->getCanonicalDecl()); in VisitTemplateParamObjectDecl()
1585 void ASTDeclReader::VisitLinkageSpecDecl(LinkageSpecDecl *D) { in VisitLinkageSpecDecl() argument
1586 VisitDecl(D); in VisitLinkageSpecDecl()
1587 D->setLanguage((LinkageSpecDecl::LanguageIDs)Record.readInt()); in VisitLinkageSpecDecl()
1588 D->setExternLoc(readSourceLocation()); in VisitLinkageSpecDecl()
1589 D->setRBraceLoc(readSourceLocation()); in VisitLinkageSpecDecl()
1592 void ASTDeclReader::VisitExportDecl(ExportDecl *D) { in VisitExportDecl() argument
1593 VisitDecl(D); in VisitExportDecl()
1594 D->RBraceLoc = readSourceLocation(); in VisitExportDecl()
1597 void ASTDeclReader::VisitLabelDecl(LabelDecl *D) { in VisitLabelDecl() argument
1598 VisitNamedDecl(D); in VisitLabelDecl()
1599 D->setLocStart(readSourceLocation()); in VisitLabelDecl()
1602 void ASTDeclReader::VisitNamespaceDecl(NamespaceDecl *D) { in VisitNamespaceDecl() argument
1603 RedeclarableResult Redecl = VisitRedeclarable(D); in VisitNamespaceDecl()
1604 VisitNamedDecl(D); in VisitNamespaceDecl()
1605 D->setInline(Record.readInt()); in VisitNamespaceDecl()
1606 D->LocStart = readSourceLocation(); in VisitNamespaceDecl()
1607 D->RBraceLoc = readSourceLocation(); in VisitNamespaceDecl()
1619 D->AnonOrFirstNamespaceAndInline.setPointer(D->getFirstDecl()); in VisitNamespaceDecl()
1622 mergeRedeclarable(D, Redecl); in VisitNamespaceDecl()
1630 D->setAnonymousNamespace(Anon); in VisitNamespaceDecl()
1634 void ASTDeclReader::VisitNamespaceAliasDecl(NamespaceAliasDecl *D) { in VisitNamespaceAliasDecl() argument
1635 RedeclarableResult Redecl = VisitRedeclarable(D); in VisitNamespaceAliasDecl()
1636 VisitNamedDecl(D); in VisitNamespaceAliasDecl()
1637 D->NamespaceLoc = readSourceLocation(); in VisitNamespaceAliasDecl()
1638 D->IdentLoc = readSourceLocation(); in VisitNamespaceAliasDecl()
1639 D->QualifierLoc = Record.readNestedNameSpecifierLoc(); in VisitNamespaceAliasDecl()
1640 D->Namespace = readDeclAs<NamedDecl>(); in VisitNamespaceAliasDecl()
1641 mergeRedeclarable(D, Redecl); in VisitNamespaceAliasDecl()
1644 void ASTDeclReader::VisitUsingDecl(UsingDecl *D) { in VisitUsingDecl() argument
1645 VisitNamedDecl(D); in VisitUsingDecl()
1646 D->setUsingLoc(readSourceLocation()); in VisitUsingDecl()
1647 D->QualifierLoc = Record.readNestedNameSpecifierLoc(); in VisitUsingDecl()
1648 D->DNLoc = Record.readDeclarationNameLoc(D->getDeclName()); in VisitUsingDecl()
1649 D->FirstUsingShadow.setPointer(readDeclAs<UsingShadowDecl>()); in VisitUsingDecl()
1650 D->setTypename(Record.readInt()); in VisitUsingDecl()
1652 Reader.getContext().setInstantiatedFromUsingDecl(D, Pattern); in VisitUsingDecl()
1653 mergeMergeable(D); in VisitUsingDecl()
1656 void ASTDeclReader::VisitUsingEnumDecl(UsingEnumDecl *D) { in VisitUsingEnumDecl() argument
1657 VisitNamedDecl(D); in VisitUsingEnumDecl()
1658 D->setUsingLoc(readSourceLocation()); in VisitUsingEnumDecl()
1659 D->setEnumLoc(readSourceLocation()); in VisitUsingEnumDecl()
1660 D->Enum = readDeclAs<EnumDecl>(); in VisitUsingEnumDecl()
1661 D->FirstUsingShadow.setPointer(readDeclAs<UsingShadowDecl>()); in VisitUsingEnumDecl()
1663 Reader.getContext().setInstantiatedFromUsingEnumDecl(D, Pattern); in VisitUsingEnumDecl()
1664 mergeMergeable(D); in VisitUsingEnumDecl()
1667 void ASTDeclReader::VisitUsingPackDecl(UsingPackDecl *D) { in VisitUsingPackDecl() argument
1668 VisitNamedDecl(D); in VisitUsingPackDecl()
1669 D->InstantiatedFrom = readDeclAs<NamedDecl>(); in VisitUsingPackDecl()
1670 auto **Expansions = D->getTrailingObjects<NamedDecl *>(); in VisitUsingPackDecl()
1671 for (unsigned I = 0; I != D->NumExpansions; ++I) in VisitUsingPackDecl()
1673 mergeMergeable(D); in VisitUsingPackDecl()
1676 void ASTDeclReader::VisitUsingShadowDecl(UsingShadowDecl *D) { in VisitUsingShadowDecl() argument
1677 RedeclarableResult Redecl = VisitRedeclarable(D); in VisitUsingShadowDecl()
1678 VisitNamedDecl(D); in VisitUsingShadowDecl()
1679 D->Underlying = readDeclAs<NamedDecl>(); in VisitUsingShadowDecl()
1680 D->IdentifierNamespace = Record.readInt(); in VisitUsingShadowDecl()
1681 D->UsingOrNextShadow = readDeclAs<NamedDecl>(); in VisitUsingShadowDecl()
1684 Reader.getContext().setInstantiatedFromUsingShadowDecl(D, Pattern); in VisitUsingShadowDecl()
1685 mergeRedeclarable(D, Redecl); in VisitUsingShadowDecl()
1689 ConstructorUsingShadowDecl *D) { in VisitConstructorUsingShadowDecl() argument
1690 VisitUsingShadowDecl(D); in VisitConstructorUsingShadowDecl()
1691 D->NominatedBaseClassShadowDecl = readDeclAs<ConstructorUsingShadowDecl>(); in VisitConstructorUsingShadowDecl()
1692 D->ConstructedBaseClassShadowDecl = readDeclAs<ConstructorUsingShadowDecl>(); in VisitConstructorUsingShadowDecl()
1693 D->IsVirtual = Record.readInt(); in VisitConstructorUsingShadowDecl()
1696 void ASTDeclReader::VisitUsingDirectiveDecl(UsingDirectiveDecl *D) { in VisitUsingDirectiveDecl() argument
1697 VisitNamedDecl(D); in VisitUsingDirectiveDecl()
1698 D->UsingLoc = readSourceLocation(); in VisitUsingDirectiveDecl()
1699 D->NamespaceLoc = readSourceLocation(); in VisitUsingDirectiveDecl()
1700 D->QualifierLoc = Record.readNestedNameSpecifierLoc(); in VisitUsingDirectiveDecl()
1701 D->NominatedNamespace = readDeclAs<NamedDecl>(); in VisitUsingDirectiveDecl()
1702 D->CommonAncestor = readDeclAs<DeclContext>(); in VisitUsingDirectiveDecl()
1705 void ASTDeclReader::VisitUnresolvedUsingValueDecl(UnresolvedUsingValueDecl *D) { in VisitUnresolvedUsingValueDecl() argument
1706 VisitValueDecl(D); in VisitUnresolvedUsingValueDecl()
1707 D->setUsingLoc(readSourceLocation()); in VisitUnresolvedUsingValueDecl()
1708 D->QualifierLoc = Record.readNestedNameSpecifierLoc(); in VisitUnresolvedUsingValueDecl()
1709 D->DNLoc = Record.readDeclarationNameLoc(D->getDeclName()); in VisitUnresolvedUsingValueDecl()
1710 D->EllipsisLoc = readSourceLocation(); in VisitUnresolvedUsingValueDecl()
1711 mergeMergeable(D); in VisitUnresolvedUsingValueDecl()
1715 UnresolvedUsingTypenameDecl *D) { in VisitUnresolvedUsingTypenameDecl() argument
1716 VisitTypeDecl(D); in VisitUnresolvedUsingTypenameDecl()
1717 D->TypenameLocation = readSourceLocation(); in VisitUnresolvedUsingTypenameDecl()
1718 D->QualifierLoc = Record.readNestedNameSpecifierLoc(); in VisitUnresolvedUsingTypenameDecl()
1719 D->EllipsisLoc = readSourceLocation(); in VisitUnresolvedUsingTypenameDecl()
1720 mergeMergeable(D); in VisitUnresolvedUsingTypenameDecl()
1724 UnresolvedUsingIfExistsDecl *D) { in VisitUnresolvedUsingIfExistsDecl() argument
1725 VisitNamedDecl(D); in VisitUnresolvedUsingIfExistsDecl()
1729 struct CXXRecordDecl::DefinitionData &Data, const CXXRecordDecl *D) { in ReadCXXDefinitionData() argument
1739 Reader.DefinitionSource[D] = in ReadCXXDefinitionData()
1769 D->setDeviceLambdaManglingNumber(Record.readInt()); in ReadCXXDefinitionData()
1797 CXXRecordDecl *D, struct CXXRecordDecl::DefinitionData &&MergeDD) { in MergeDefinitionData() argument
1798 assert(D->DefinitionData && in MergeDefinitionData()
1800 auto &DD = *D->DefinitionData; in MergeDefinitionData()
1861 if (D->getODRHash() != MergeDD.ODRHash) { in MergeDefinitionData()
1870 void ASTDeclReader::ReadCXXRecordDefinition(CXXRecordDecl *D, bool Update) { in ReadCXXRecordDefinition() argument
1878 DD = new (C) CXXRecordDecl::LambdaDefinitionData(D, nullptr, false, false, in ReadCXXRecordDefinition()
1881 DD = new (C) struct CXXRecordDecl::DefinitionData(D); in ReadCXXRecordDefinition()
1883 CXXRecordDecl *Canon = D->getCanonicalDecl(); in ReadCXXRecordDefinition()
1889 D->DefinitionData = Canon->DefinitionData; in ReadCXXRecordDefinition()
1890 ReadCXXDefinitionData(*DD, D); in ReadCXXRecordDefinition()
1901 D->setCompleteDefinition(true); in ReadCXXRecordDefinition()
1906 if (Update || Canon != D) in ReadCXXRecordDefinition()
1907 Reader.PendingDefinitions.insert(D); in ReadCXXRecordDefinition()
1911 ASTDeclReader::VisitCXXRecordDeclImpl(CXXRecordDecl *D) { in VisitCXXRecordDeclImpl() argument
1912 RedeclarableResult Redecl = VisitRecordDeclImpl(D); in VisitCXXRecordDeclImpl()
1922 if (!isa<ClassTemplateSpecializationDecl>(D)) in VisitCXXRecordDeclImpl()
1923 mergeRedeclarable(D, Redecl); in VisitCXXRecordDeclImpl()
1928 D->TemplateOrInstantiation = Template; in VisitCXXRecordDeclImpl()
1946 D->TemplateOrInstantiation = MSI; in VisitCXXRecordDeclImpl()
1947 mergeRedeclarable(D, Redecl); in VisitCXXRecordDeclImpl()
1954 ReadCXXRecordDefinition(D, /*Update*/false); in VisitCXXRecordDeclImpl()
1957 D->DefinitionData = D->getCanonicalDecl()->DefinitionData; in VisitCXXRecordDeclImpl()
1963 if (KeyFn && D->isCompleteDefinition()) in VisitCXXRecordDeclImpl()
1967 C.KeyFunctions[D] = KeyFn; in VisitCXXRecordDeclImpl()
1973 void ASTDeclReader::VisitCXXDeductionGuideDecl(CXXDeductionGuideDecl *D) { in VisitCXXDeductionGuideDecl() argument
1974 D->setExplicitSpecifier(Record.readExplicitSpec()); in VisitCXXDeductionGuideDecl()
1975 D->Ctor = readDeclAs<CXXConstructorDecl>(); in VisitCXXDeductionGuideDecl()
1976 VisitFunctionDecl(D); in VisitCXXDeductionGuideDecl()
1977 D->setIsCopyDeductionCandidate(Record.readInt()); in VisitCXXDeductionGuideDecl()
1980 void ASTDeclReader::VisitCXXMethodDecl(CXXMethodDecl *D) { in VisitCXXMethodDecl() argument
1981 VisitFunctionDecl(D); in VisitCXXMethodDecl()
1984 if (D->isCanonicalDecl()) { in VisitCXXMethodDecl()
1989 Reader.getContext().addOverriddenMethod(D, MD->getCanonicalDecl()); in VisitCXXMethodDecl()
1998 void ASTDeclReader::VisitCXXConstructorDecl(CXXConstructorDecl *D) { in VisitCXXConstructorDecl() argument
2001 D->setExplicitSpecifier(Record.readExplicitSpec()); in VisitCXXConstructorDecl()
2002 if (D->isInheritingConstructor()) { in VisitCXXConstructorDecl()
2005 *D->getTrailingObjects<InheritedConstructor>() = in VisitCXXConstructorDecl()
2009 VisitCXXMethodDecl(D); in VisitCXXConstructorDecl()
2012 void ASTDeclReader::VisitCXXDestructorDecl(CXXDestructorDecl *D) { in VisitCXXDestructorDecl() argument
2013 VisitCXXMethodDecl(D); in VisitCXXDestructorDecl()
2016 CXXDestructorDecl *Canon = D->getCanonicalDecl(); in VisitCXXDestructorDecl()
2026 void ASTDeclReader::VisitCXXConversionDecl(CXXConversionDecl *D) { in VisitCXXConversionDecl() argument
2027 D->setExplicitSpecifier(Record.readExplicitSpec()); in VisitCXXConversionDecl()
2028 VisitCXXMethodDecl(D); in VisitCXXConversionDecl()
2031 void ASTDeclReader::VisitImportDecl(ImportDecl *D) { in VisitImportDecl() argument
2032 VisitDecl(D); in VisitImportDecl()
2033 D->ImportedModule = readModule(); in VisitImportDecl()
2034 D->setImportComplete(Record.readInt()); in VisitImportDecl()
2035 auto *StoredLocs = D->getTrailingObjects<SourceLocation>(); in VisitImportDecl()
2041 void ASTDeclReader::VisitAccessSpecDecl(AccessSpecDecl *D) { in VisitAccessSpecDecl() argument
2042 VisitDecl(D); in VisitAccessSpecDecl()
2043 D->setColonLoc(readSourceLocation()); in VisitAccessSpecDecl()
2046 void ASTDeclReader::VisitFriendDecl(FriendDecl *D) { in VisitFriendDecl() argument
2047 VisitDecl(D); in VisitFriendDecl()
2049 D->Friend = readDeclAs<NamedDecl>(); in VisitFriendDecl()
2051 D->Friend = readTypeSourceInfo(); in VisitFriendDecl()
2052 for (unsigned i = 0; i != D->NumTPLists; ++i) in VisitFriendDecl()
2053 D->getTrailingObjects<TemplateParameterList *>()[i] = in VisitFriendDecl()
2055 D->NextFriend = readDeclID(); in VisitFriendDecl()
2056 D->UnsupportedFriend = (Record.readInt() != 0); in VisitFriendDecl()
2057 D->FriendLoc = readSourceLocation(); in VisitFriendDecl()
2060 void ASTDeclReader::VisitFriendTemplateDecl(FriendTemplateDecl *D) { in VisitFriendTemplateDecl() argument
2061 VisitDecl(D); in VisitFriendTemplateDecl()
2063 D->NumParams = NumParams; in VisitFriendTemplateDecl()
2064 D->Params = new TemplateParameterList*[NumParams]; in VisitFriendTemplateDecl()
2066 D->Params[i] = Record.readTemplateParameterList(); in VisitFriendTemplateDecl()
2068 D->Friend = readDeclAs<NamedDecl>(); in VisitFriendTemplateDecl()
2070 D->Friend = readTypeSourceInfo(); in VisitFriendTemplateDecl()
2071 D->FriendLoc = readSourceLocation(); in VisitFriendTemplateDecl()
2074 DeclID ASTDeclReader::VisitTemplateDecl(TemplateDecl *D) { in VisitTemplateDecl() argument
2075 VisitNamedDecl(D); in VisitTemplateDecl()
2080 D->init(TemplatedDecl, TemplateParams); in VisitTemplateDecl()
2085 void ASTDeclReader::VisitConceptDecl(ConceptDecl *D) { in VisitConceptDecl() argument
2086 VisitTemplateDecl(D); in VisitConceptDecl()
2087 D->ConstraintExpr = Record.readExpr(); in VisitConceptDecl()
2088 mergeMergeable(D); in VisitConceptDecl()
2091 void ASTDeclReader::VisitRequiresExprBodyDecl(RequiresExprBodyDecl *D) { in VisitRequiresExprBodyDecl() argument
2095 ASTDeclReader::VisitRedeclarableTemplateDecl(RedeclarableTemplateDecl *D) { in VisitRedeclarableTemplateDecl() argument
2096 RedeclarableResult Redecl = VisitRedeclarable(D); in VisitRedeclarableTemplateDecl()
2100 RedeclarableTemplateDecl *CanonD = D->getCanonicalDecl(); in VisitRedeclarableTemplateDecl()
2105 D->Common = CanonD->Common; in VisitRedeclarableTemplateDecl()
2111 assert(RTD->getKind() == D->getKind() && in VisitRedeclarableTemplateDecl()
2113 D->setInstantiatedFromMemberTemplate(RTD); in VisitRedeclarableTemplateDecl()
2115 D->setMemberSpecialization(); in VisitRedeclarableTemplateDecl()
2119 DeclID PatternID = VisitTemplateDecl(D); in VisitRedeclarableTemplateDecl()
2120 D->IdentifierNamespace = Record.readInt(); in VisitRedeclarableTemplateDecl()
2122 mergeRedeclarable(D, Redecl, PatternID); in VisitRedeclarableTemplateDecl()
2127 D->Common = D->getCanonicalDecl()->Common; in VisitRedeclarableTemplateDecl()
2132 void ASTDeclReader::VisitClassTemplateDecl(ClassTemplateDecl *D) { in VisitClassTemplateDecl() argument
2133 RedeclarableResult Redecl = VisitRedeclarableTemplateDecl(D); in VisitClassTemplateDecl()
2140 ASTDeclReader::AddLazySpecializations(D, SpecIDs); in VisitClassTemplateDecl()
2143 if (D->getTemplatedDecl()->TemplateOrInstantiation) { in VisitClassTemplateDecl()
2148 D->getTemplatedDecl(), D->getInjectedClassNameSpecialization()); in VisitClassTemplateDecl()
2152 void ASTDeclReader::VisitBuiltinTemplateDecl(BuiltinTemplateDecl *D) { in VisitBuiltinTemplateDecl() argument
2159 void ASTDeclReader::VisitVarTemplateDecl(VarTemplateDecl *D) { in VisitVarTemplateDecl() argument
2160 RedeclarableResult Redecl = VisitRedeclarableTemplateDecl(D); in VisitVarTemplateDecl()
2167 ASTDeclReader::AddLazySpecializations(D, SpecIDs); in VisitVarTemplateDecl()
2173 ClassTemplateSpecializationDecl *D) { in VisitClassTemplateSpecializationDeclImpl() argument
2174 RedeclarableResult Redecl = VisitCXXRecordDeclImpl(D); in VisitClassTemplateSpecializationDeclImpl()
2179 D->SpecializedTemplate = CTD; in VisitClassTemplateSpecializationDeclImpl()
2191 D->SpecializedTemplate = PS; in VisitClassTemplateSpecializationDeclImpl()
2197 D->TemplateArgs = TemplateArgumentList::CreateCopy(C, TemplArgs); in VisitClassTemplateSpecializationDeclImpl()
2198 D->PointOfInstantiation = readSourceLocation(); in VisitClassTemplateSpecializationDeclImpl()
2199 D->SpecializationKind = (TemplateSpecializationKind)Record.readInt(); in VisitClassTemplateSpecializationDeclImpl()
2204 if (D->isCanonicalDecl()) { // It's kept in the folding set. in VisitClassTemplateSpecializationDeclImpl()
2207 if (auto *Partial = dyn_cast<ClassTemplatePartialSpecializationDecl>(D)) { in VisitClassTemplateSpecializationDeclImpl()
2212 CanonPattern->getCommonPtr()->Specializations.GetOrInsertNode(D); in VisitClassTemplateSpecializationDeclImpl()
2215 if (CanonSpec != D) { in VisitClassTemplateSpecializationDeclImpl()
2216 mergeRedeclarable<TagDecl>(D, CanonSpec, Redecl); in VisitClassTemplateSpecializationDeclImpl()
2220 if (auto *DDD = D->DefinitionData) { in VisitClassTemplateSpecializationDeclImpl()
2224 CanonSpec->DefinitionData = D->DefinitionData; in VisitClassTemplateSpecializationDeclImpl()
2226 D->DefinitionData = CanonSpec->DefinitionData; in VisitClassTemplateSpecializationDeclImpl()
2238 D->ExplicitInfo = ExplicitInfo; in VisitClassTemplateSpecializationDeclImpl()
2245 ClassTemplatePartialSpecializationDecl *D) { in VisitClassTemplatePartialSpecializationDecl() argument
2249 D->TemplateParams = Params; in VisitClassTemplatePartialSpecializationDecl()
2250 D->ArgsAsWritten = Record.readASTTemplateArgumentListInfo(); in VisitClassTemplatePartialSpecializationDecl()
2252 RedeclarableResult Redecl = VisitClassTemplateSpecializationDeclImpl(D); in VisitClassTemplatePartialSpecializationDecl()
2256 D->InstantiatedFromMember.setPointer( in VisitClassTemplatePartialSpecializationDecl()
2258 D->InstantiatedFromMember.setInt(Record.readInt()); in VisitClassTemplatePartialSpecializationDecl()
2263 ClassScopeFunctionSpecializationDecl *D) { in VisitClassScopeFunctionSpecializationDecl() argument
2264 VisitDecl(D); in VisitClassScopeFunctionSpecializationDecl()
2265 D->Specialization = readDeclAs<CXXMethodDecl>(); in VisitClassScopeFunctionSpecializationDecl()
2267 D->TemplateArgs = Record.readASTTemplateArgumentListInfo(); in VisitClassScopeFunctionSpecializationDecl()
2270 void ASTDeclReader::VisitFunctionTemplateDecl(FunctionTemplateDecl *D) { in VisitFunctionTemplateDecl() argument
2271 RedeclarableResult Redecl = VisitRedeclarableTemplateDecl(D); in VisitFunctionTemplateDecl()
2277 ASTDeclReader::AddLazySpecializations(D, SpecIDs); in VisitFunctionTemplateDecl()
2288 VarTemplateSpecializationDecl *D) { in VisitVarTemplateSpecializationDeclImpl() argument
2289 RedeclarableResult Redecl = VisitVarDeclImpl(D); in VisitVarTemplateSpecializationDeclImpl()
2294 D->SpecializedTemplate = VTD; in VisitVarTemplateSpecializationDeclImpl()
2306 D->SpecializedTemplate = PS; in VisitVarTemplateSpecializationDeclImpl()
2317 D->ExplicitInfo = ExplicitInfo; in VisitVarTemplateSpecializationDeclImpl()
2322 D->TemplateArgs = TemplateArgumentList::CreateCopy(C, TemplArgs); in VisitVarTemplateSpecializationDeclImpl()
2323 D->PointOfInstantiation = readSourceLocation(); in VisitVarTemplateSpecializationDeclImpl()
2324 D->SpecializationKind = (TemplateSpecializationKind)Record.readInt(); in VisitVarTemplateSpecializationDeclImpl()
2325 D->IsCompleteDefinition = Record.readInt(); in VisitVarTemplateSpecializationDeclImpl()
2330 if (D->isCanonicalDecl()) { // It's kept in the folding set. in VisitVarTemplateSpecializationDeclImpl()
2332 if (auto *Partial = dyn_cast<VarTemplatePartialSpecializationDecl>(D)) { in VisitVarTemplateSpecializationDeclImpl()
2336 CanonPattern->getCommonPtr()->Specializations.GetOrInsertNode(D); in VisitVarTemplateSpecializationDeclImpl()
2350 VarTemplatePartialSpecializationDecl *D) { in VisitVarTemplatePartialSpecializationDecl() argument
2352 D->TemplateParams = Params; in VisitVarTemplatePartialSpecializationDecl()
2353 D->ArgsAsWritten = Record.readASTTemplateArgumentListInfo(); in VisitVarTemplatePartialSpecializationDecl()
2355 RedeclarableResult Redecl = VisitVarTemplateSpecializationDeclImpl(D); in VisitVarTemplatePartialSpecializationDecl()
2359 D->InstantiatedFromMember.setPointer( in VisitVarTemplatePartialSpecializationDecl()
2361 D->InstantiatedFromMember.setInt(Record.readInt()); in VisitVarTemplatePartialSpecializationDecl()
2365 void ASTDeclReader::VisitTemplateTypeParmDecl(TemplateTypeParmDecl *D) { in VisitTemplateTypeParmDecl() argument
2366 VisitTypeDecl(D); in VisitTemplateTypeParmDecl()
2368 D->setDeclaredWithTypename(Record.readInt()); in VisitTemplateTypeParmDecl()
2378 D->setTypeConstraint(NNS, DN, /*FoundDecl=*/nullptr, NamedConcept, in VisitTemplateTypeParmDecl()
2380 if ((D->ExpandedParameterPack = Record.readInt())) in VisitTemplateTypeParmDecl()
2381 D->NumExpanded = Record.readInt(); in VisitTemplateTypeParmDecl()
2385 D->setDefaultArgument(readTypeSourceInfo()); in VisitTemplateTypeParmDecl()
2388 void ASTDeclReader::VisitNonTypeTemplateParmDecl(NonTypeTemplateParmDecl *D) { in VisitNonTypeTemplateParmDecl() argument
2389 VisitDeclaratorDecl(D); in VisitNonTypeTemplateParmDecl()
2391 D->setDepth(Record.readInt()); in VisitNonTypeTemplateParmDecl()
2392 D->setPosition(Record.readInt()); in VisitNonTypeTemplateParmDecl()
2393 if (D->hasPlaceholderTypeConstraint()) in VisitNonTypeTemplateParmDecl()
2394 D->setPlaceholderTypeConstraint(Record.readExpr()); in VisitNonTypeTemplateParmDecl()
2395 if (D->isExpandedParameterPack()) { in VisitNonTypeTemplateParmDecl()
2397 D->getTrailingObjects<std::pair<QualType, TypeSourceInfo *>>(); in VisitNonTypeTemplateParmDecl()
2398 for (unsigned I = 0, N = D->getNumExpansionTypes(); I != N; ++I) { in VisitNonTypeTemplateParmDecl()
2404 D->ParameterPack = Record.readInt(); in VisitNonTypeTemplateParmDecl()
2406 D->setDefaultArgument(Record.readExpr()); in VisitNonTypeTemplateParmDecl()
2410 void ASTDeclReader::VisitTemplateTemplateParmDecl(TemplateTemplateParmDecl *D) { in VisitTemplateTemplateParmDecl() argument
2411 VisitTemplateDecl(D); in VisitTemplateTemplateParmDecl()
2413 D->setDepth(Record.readInt()); in VisitTemplateTemplateParmDecl()
2414 D->setPosition(Record.readInt()); in VisitTemplateTemplateParmDecl()
2415 if (D->isExpandedParameterPack()) { in VisitTemplateTemplateParmDecl()
2416 auto **Data = D->getTrailingObjects<TemplateParameterList *>(); in VisitTemplateTemplateParmDecl()
2417 for (unsigned I = 0, N = D->getNumExpansionTemplateParameters(); in VisitTemplateTemplateParmDecl()
2422 D->ParameterPack = Record.readInt(); in VisitTemplateTemplateParmDecl()
2424 D->setDefaultArgument(Reader.getContext(), in VisitTemplateTemplateParmDecl()
2429 void ASTDeclReader::VisitTypeAliasTemplateDecl(TypeAliasTemplateDecl *D) { in VisitTypeAliasTemplateDecl() argument
2430 VisitRedeclarableTemplateDecl(D); in VisitTypeAliasTemplateDecl()
2433 void ASTDeclReader::VisitStaticAssertDecl(StaticAssertDecl *D) { in VisitStaticAssertDecl() argument
2434 VisitDecl(D); in VisitStaticAssertDecl()
2435 D->AssertExprAndFailed.setPointer(Record.readExpr()); in VisitStaticAssertDecl()
2436 D->AssertExprAndFailed.setInt(Record.readInt()); in VisitStaticAssertDecl()
2437 D->Message = cast_or_null<StringLiteral>(Record.readExpr()); in VisitStaticAssertDecl()
2438 D->RParenLoc = readSourceLocation(); in VisitStaticAssertDecl()
2441 void ASTDeclReader::VisitEmptyDecl(EmptyDecl *D) { in VisitEmptyDecl() argument
2442 VisitDecl(D); in VisitEmptyDecl()
2446 LifetimeExtendedTemporaryDecl *D) { in VisitLifetimeExtendedTemporaryDecl() argument
2447 VisitDecl(D); in VisitLifetimeExtendedTemporaryDecl()
2448 D->ExtendingDecl = readDeclAs<ValueDecl>(); in VisitLifetimeExtendedTemporaryDecl()
2449 D->ExprWithTemporary = Record.readStmt(); in VisitLifetimeExtendedTemporaryDecl()
2451 D->Value = new (D->getASTContext()) APValue(Record.readAPValue()); in VisitLifetimeExtendedTemporaryDecl()
2452 D->getASTContext().addDestruction(D->Value); in VisitLifetimeExtendedTemporaryDecl()
2454 D->ManglingNumber = Record.readInt(); in VisitLifetimeExtendedTemporaryDecl()
2455 mergeMergeable(D); in VisitLifetimeExtendedTemporaryDecl()
2467 ASTDeclReader::VisitRedeclarable(Redeclarable<T> *D) { in VisitRedeclarable() argument
2504 if (FirstDecl != D) { in VisitRedeclarable()
2509 D->RedeclLink = Redeclarable<T>::PreviousDeclLink(FirstDecl); in VisitRedeclarable()
2510 D->First = FirstDecl->getCanonicalDecl(); in VisitRedeclarable()
2513 auto *DAsT = static_cast<T *>(D); in VisitRedeclarable()
2539 auto *D = static_cast<T *>(DBase); in mergeRedeclarable() local
2543 mergeRedeclarable(D, cast<T>(Existing), Redecl, TemplatePatternID); in mergeRedeclarable()
2544 else if (FindExistingResult ExistingRes = findExisting(D)) in mergeRedeclarable()
2546 mergeRedeclarable(D, Existing, Redecl, TemplatePatternID); in mergeRedeclarable()
2559 void ASTDeclReader::mergeTemplatePattern(RedeclarableTemplateDecl *D, in mergeTemplatePattern() argument
2562 auto *DPattern = D->getTemplatedDecl(); in mergeTemplatePattern()
2605 auto *D = static_cast<T *>(DBase); in mergeRedeclarable() local
2607 T *DCanon = D->getCanonicalDecl(); in mergeRedeclarable()
2615 D->RedeclLink = Redeclarable<T>::PreviousDeclLink(ExistingCanon); in mergeRedeclarable()
2616 D->First = ExistingCanon; in mergeRedeclarable()
2617 ExistingCanon->Used |= D->Used; in mergeRedeclarable()
2618 D->Used = false; in mergeRedeclarable()
2623 if (auto *Namespace = dyn_cast<NamespaceDecl>(D)) in mergeRedeclarable()
2628 if (auto *DTemplate = dyn_cast<RedeclarableTemplateDecl>(D)) in mergeRedeclarable()
2655 void ASTDeclReader::mergeMergeable(LifetimeExtendedTemporaryDecl *D) { in mergeMergeable() argument
2660 LifetimeExtendedTemporaryDecl *LETDecl = D; in mergeMergeable()
2677 void ASTDeclReader::mergeMergeable(Mergeable<T> *D) { in mergeMergeable() argument
2687 !allowODRLikeMergeInC(dyn_cast<NamedDecl>(static_cast<T*>(D)))) in mergeMergeable()
2690 if (FindExistingResult ExistingRes = findExisting(static_cast<T*>(D))) in mergeMergeable()
2692 Reader.getContext().setPrimaryMergedDecl(static_cast<T *>(D), in mergeMergeable()
2696 void ASTDeclReader::VisitOMPThreadPrivateDecl(OMPThreadPrivateDecl *D) { in VisitOMPThreadPrivateDecl() argument
2697 Record.readOMPChildren(D->Data); in VisitOMPThreadPrivateDecl()
2698 VisitDecl(D); in VisitOMPThreadPrivateDecl()
2701 void ASTDeclReader::VisitOMPAllocateDecl(OMPAllocateDecl *D) { in VisitOMPAllocateDecl() argument
2702 Record.readOMPChildren(D->Data); in VisitOMPAllocateDecl()
2703 VisitDecl(D); in VisitOMPAllocateDecl()
2706 void ASTDeclReader::VisitOMPRequiresDecl(OMPRequiresDecl * D) { in VisitOMPRequiresDecl() argument
2707 Record.readOMPChildren(D->Data); in VisitOMPRequiresDecl()
2708 VisitDecl(D); in VisitOMPRequiresDecl()
2711 void ASTDeclReader::VisitOMPDeclareReductionDecl(OMPDeclareReductionDecl *D) { in VisitOMPDeclareReductionDecl() argument
2712 VisitValueDecl(D); in VisitOMPDeclareReductionDecl()
2713 D->setLocation(readSourceLocation()); in VisitOMPDeclareReductionDecl()
2716 D->setCombinerData(In, Out); in VisitOMPDeclareReductionDecl()
2718 D->setCombiner(Combiner); in VisitOMPDeclareReductionDecl()
2721 D->setInitializerData(Orig, Priv); in VisitOMPDeclareReductionDecl()
2724 D->setInitializer(Init, IK); in VisitOMPDeclareReductionDecl()
2725 D->PrevDeclInScope = readDeclID(); in VisitOMPDeclareReductionDecl()
2728 void ASTDeclReader::VisitOMPDeclareMapperDecl(OMPDeclareMapperDecl *D) { in VisitOMPDeclareMapperDecl() argument
2729 Record.readOMPChildren(D->Data); in VisitOMPDeclareMapperDecl()
2730 VisitValueDecl(D); in VisitOMPDeclareMapperDecl()
2731 D->VarName = Record.readDeclarationName(); in VisitOMPDeclareMapperDecl()
2732 D->PrevDeclInScope = readDeclID(); in VisitOMPDeclareMapperDecl()
2735 void ASTDeclReader::VisitOMPCapturedExprDecl(OMPCapturedExprDecl *D) { in VisitOMPCapturedExprDecl() argument
2736 VisitVarDecl(D); in VisitOMPCapturedExprDecl()
2834 inline void ASTReader::LoadedDecl(unsigned Index, Decl *D) { in LoadedDecl() argument
2836 DeclsLoaded[Index] = D; in LoadedDecl()
2845 static bool isConsumerInterestedIn(ASTContext &Ctx, Decl *D, bool HasBody) { in isConsumerInterestedIn() argument
2851 if (isPartOfPerModuleInitializer(D)) { in isConsumerInterestedIn()
2852 auto *M = D->getImportedOwningModule(); in isConsumerInterestedIn()
2854 Ctx.DeclMustBeEmitted(D)) in isConsumerInterestedIn()
2858 if (isa<FileScopeAsmDecl>(D) || in isConsumerInterestedIn()
2859 isa<ObjCProtocolDecl>(D) || in isConsumerInterestedIn()
2860 isa<ObjCImplDecl>(D) || in isConsumerInterestedIn()
2861 isa<ImportDecl>(D) || in isConsumerInterestedIn()
2862 isa<PragmaCommentDecl>(D) || in isConsumerInterestedIn()
2863 isa<PragmaDetectMismatchDecl>(D)) in isConsumerInterestedIn()
2865 if (isa<OMPThreadPrivateDecl>(D) || isa<OMPDeclareReductionDecl>(D) || in isConsumerInterestedIn()
2866 isa<OMPDeclareMapperDecl>(D) || isa<OMPAllocateDecl>(D) || in isConsumerInterestedIn()
2867 isa<OMPRequiresDecl>(D)) in isConsumerInterestedIn()
2868 return !D->getDeclContext()->isFunctionOrMethod(); in isConsumerInterestedIn()
2869 if (const auto *Var = dyn_cast<VarDecl>(D)) in isConsumerInterestedIn()
2873 if (const auto *Func = dyn_cast<FunctionDecl>(D)) in isConsumerInterestedIn()
2876 if (auto *ES = D->getASTContext().getExternalSource()) in isConsumerInterestedIn()
2877 if (ES->hasExternalDefinitions(D) == ExternalASTSource::EK_Never) in isConsumerInterestedIn()
3394 for (auto *D : merged_redecls(cast<Decl>(LexicalDC))) { in getPrimaryDCForAnonymousDecl() local
3395 if (auto *FD = dyn_cast<FunctionDecl>(D)) in getPrimaryDCForAnonymousDecl()
3398 if (auto *MD = dyn_cast<ObjCMethodDecl>(D)) in getPrimaryDCForAnonymousDecl()
3436 NamedDecl *D) { in setAnonymousDeclForMerging() argument
3443 Previous[Index] = D; in setAnonymousDeclForMerging()
3446 ASTDeclReader::FindExistingResult ASTDeclReader::findExisting(NamedDecl *D) { in findExisting() argument
3448 : D->getDeclName(); in findExisting()
3450 if (!Name && !needsAnonymousDeclarationNumber(D)) { in findExisting()
3453 FindExistingResult Result(Reader, D, /*Existing=*/nullptr, in findExisting()
3459 DeclContext *DC = D->getDeclContext()->getRedeclContext(); in findExisting()
3464 if (isSameEntity(It->second, D)) in findExisting()
3465 return FindExistingResult(Reader, D, It->second, AnonymousDeclNumber, in findExisting()
3471 if (needsAnonymousDeclarationNumber(D)) { in findExisting()
3475 Reader, D->getLexicalDeclContext(), AnonymousDeclNumber)) in findExisting()
3476 if (isSameEntity(Existing, D)) in findExisting()
3477 return FindExistingResult(Reader, D, Existing, AnonymousDeclNumber, in findExisting()
3508 if (isSameEntity(Existing, D)) in findExisting()
3509 return FindExistingResult(Reader, D, Existing, AnonymousDeclNumber, in findExisting()
3516 if (isSameEntity(Existing, D)) in findExisting()
3517 return FindExistingResult(Reader, D, Existing, AnonymousDeclNumber, in findExisting()
3530 auto MergedDCIt = Reader.MergedDeclContexts.find(D->getLexicalDeclContext()); in findExisting()
3532 MergedDCIt->second == D->getDeclContext()) in findExisting()
3533 Reader.PendingOdrMergeChecks.push_back(D); in findExisting()
3535 return FindExistingResult(Reader, D, /*Existing=*/nullptr, in findExisting()
3540 Decl *ASTDeclReader::getMostRecentDeclImpl(Redeclarable<DeclT> *D) { in getMostRecentDeclImpl() argument
3541 return D->RedeclLink.getLatestNotUpdated(); in getMostRecentDeclImpl()
3548 Decl *ASTDeclReader::getMostRecentDecl(Decl *D) { in getMostRecentDecl() argument
3549 assert(D); in getMostRecentDecl()
3551 switch (D->getKind()) { in getMostRecentDecl()
3555 return getMostRecentDeclImpl(cast<TYPE##Decl>(D)); in getMostRecentDecl()
3561 Decl *ASTReader::getMostRecentExistingDecl(Decl *D) { in getMostRecentExistingDecl() argument
3562 return ASTDeclReader::getMostRecentDecl(D->getCanonicalDecl()); in getMostRecentExistingDecl()
3565 void ASTDeclReader::mergeInheritableAttributes(ASTReader &Reader, Decl *D, in mergeInheritableAttributes() argument
3571 if (IA && !D->hasAttr<MSInheritanceAttr>()) { in mergeInheritableAttributes()
3574 D->addAttr(NewAttr); in mergeInheritableAttributes()
3580 Redeclarable<DeclT> *D, in attachPreviousDeclImpl() argument
3582 D->RedeclLink.setPrevious(cast<DeclT>(Previous)); in attachPreviousDeclImpl()
3583 D->First = cast<DeclT>(Previous)->First; in attachPreviousDeclImpl()
3590 Redeclarable<VarDecl> *D, in attachPreviousDeclImpl() argument
3592 auto *VD = static_cast<VarDecl *>(D); in attachPreviousDeclImpl()
3594 D->RedeclLink.setPrevious(PrevVD); in attachPreviousDeclImpl()
3595 D->First = PrevVD->First; in attachPreviousDeclImpl()
3618 Redeclarable<FunctionDecl> *D, in attachPreviousDeclImpl() argument
3620 auto *FD = static_cast<FunctionDecl *>(D); in attachPreviousDeclImpl()
3709 void ASTDeclReader::attachPreviousDecl(ASTReader &Reader, Decl *D, in attachPreviousDecl() argument
3711 assert(D && Previous); in attachPreviousDecl()
3713 switch (D->getKind()) { in attachPreviousDecl()
3717 attachPreviousDeclImpl(Reader, cast<TYPE##Decl>(D), Previous, Canon); \ in attachPreviousDecl()
3727 D->IdentifierNamespace |= in attachPreviousDecl()
3733 if (auto *TD = dyn_cast<TemplateDecl>(D)) in attachPreviousDecl()
3741 mergeInheritableAttributes(Reader, D, Previous); in attachPreviousDecl()
3745 void ASTDeclReader::attachLatestDeclImpl(Redeclarable<DeclT> *D, Decl *Latest) { in attachLatestDeclImpl() argument
3746 D->RedeclLink.setLatest(cast<DeclT>(Latest)); in attachLatestDeclImpl()
3753 void ASTDeclReader::attachLatestDecl(Decl *D, Decl *Latest) { in attachLatestDecl() argument
3754 assert(D && Latest); in attachLatestDecl()
3756 switch (D->getKind()) { in attachLatestDecl()
3760 attachLatestDeclImpl(cast<TYPE##Decl>(D), Latest); \ in attachLatestDecl()
3767 void ASTDeclReader::markIncompleteDeclChainImpl(Redeclarable<DeclT> *D) { in markIncompleteDeclChainImpl() argument
3768 D->RedeclLink.markIncomplete(); in markIncompleteDeclChainImpl()
3775 void ASTReader::markIncompleteDeclChain(Decl *D) { in markIncompleteDeclChain() argument
3776 switch (D->getKind()) { in markIncompleteDeclChain()
3780 ASTDeclReader::markIncompleteDeclChainImpl(cast<TYPE##Decl>(D)); \ in markIncompleteDeclChain()
3816 Decl *D = nullptr; in ReadDeclRecord() local
3827 D = TypedefDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3830 D = TypeAliasDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3833 D = EnumDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3836 D = RecordDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3839 D = EnumConstantDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3842 D = FunctionDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3845 D = LinkageSpecDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3848 D = ExportDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3851 D = LabelDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3854 D = NamespaceDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3857 D = NamespaceAliasDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3860 D = UsingDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3863 D = UsingPackDecl::CreateDeserialized(Context, ID, Record.readInt()); in ReadDeclRecord()
3866 D = UsingShadowDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3869 D = UsingEnumDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3872 D = ConstructorUsingShadowDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3875 D = UsingDirectiveDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3878 D = UnresolvedUsingValueDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3881 D = UnresolvedUsingTypenameDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3884 D = UnresolvedUsingIfExistsDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3887 D = CXXRecordDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3890 D = CXXDeductionGuideDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3893 D = CXXMethodDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3896 D = CXXConstructorDecl::CreateDeserialized(Context, ID, Record.readInt()); in ReadDeclRecord()
3899 D = CXXDestructorDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3902 D = CXXConversionDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3905 D = AccessSpecDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3908 D = FriendDecl::CreateDeserialized(Context, ID, Record.readInt()); in ReadDeclRecord()
3911 D = FriendTemplateDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3914 D = ClassTemplateDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3917 D = ClassTemplateSpecializationDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3920 D = ClassTemplatePartialSpecializationDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3923 D = VarTemplateDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3926 D = VarTemplateSpecializationDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3929 D = VarTemplatePartialSpecializationDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3932 D = ClassScopeFunctionSpecializationDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3935 D = FunctionTemplateDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3939 D = TemplateTypeParmDecl::CreateDeserialized(Context, ID, in ReadDeclRecord()
3945 D = NonTypeTemplateParmDecl::CreateDeserialized(Context, ID, in ReadDeclRecord()
3951 D = NonTypeTemplateParmDecl::CreateDeserialized(Context, ID, in ReadDeclRecord()
3957 D = TemplateTemplateParmDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3960 D = TemplateTemplateParmDecl::CreateDeserialized(Context, ID, in ReadDeclRecord()
3964 D = TypeAliasTemplateDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3967 D = ConceptDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3970 D = RequiresExprBodyDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3973 D = StaticAssertDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3976 D = ObjCMethodDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3979 D = ObjCInterfaceDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3982 D = ObjCIvarDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3985 D = ObjCProtocolDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3988 D = ObjCAtDefsFieldDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3991 D = ObjCCategoryDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3994 D = ObjCCategoryImplDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
3997 D = ObjCImplementationDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
4000 D = ObjCCompatibleAliasDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
4003 D = ObjCPropertyDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
4006 D = ObjCPropertyImplDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
4009 D = FieldDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
4012 D = IndirectFieldDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
4015 D = VarDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
4018 D = ImplicitParamDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
4021 D = ParmVarDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
4024 D = DecompositionDecl::CreateDeserialized(Context, ID, Record.readInt()); in ReadDeclRecord()
4027 D = BindingDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
4030 D = FileScopeAsmDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
4033 D = BlockDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
4036 D = MSPropertyDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
4039 D = MSGuidDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
4042 D = TemplateParamObjectDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
4045 D = CapturedDecl::CreateDeserialized(Context, ID, Record.readInt()); in ReadDeclRecord()
4056 D = ImportDecl::CreateDeserialized(Context, ID, Record.back()); in ReadDeclRecord()
4062 D = OMPThreadPrivateDecl::CreateDeserialized(Context, ID, NumChildren); in ReadDeclRecord()
4069 D = OMPAllocateDecl::CreateDeserialized(Context, ID, NumVars, NumClauses); in ReadDeclRecord()
4075 D = OMPRequiresDecl::CreateDeserialized(Context, ID, NumClauses); in ReadDeclRecord()
4079 D = OMPDeclareReductionDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
4084 D = OMPDeclareMapperDecl::CreateDeserialized(Context, ID, NumClauses); in ReadDeclRecord()
4088 D = OMPCapturedExprDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
4091 D = PragmaCommentDecl::CreateDeserialized(Context, ID, Record.readInt()); in ReadDeclRecord()
4094 D = PragmaDetectMismatchDecl::CreateDeserialized(Context, ID, in ReadDeclRecord()
4098 D = EmptyDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
4101 D = LifetimeExtendedTemporaryDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
4104 D = ObjCTypeParamDecl::CreateDeserialized(Context, ID); in ReadDeclRecord()
4108 assert(D && "Unknown declaration reading AST file"); in ReadDeclRecord()
4109 LoadedDecl(Index, D); in ReadDeclRecord()
4113 D->setDeclContext(Context.getTranslationUnitDecl()); in ReadDeclRecord()
4114 Reader.Visit(D); in ReadDeclRecord()
4118 if (auto *DC = dyn_cast<DeclContext>(D)) { in ReadDeclRecord()
4131 PendingUpdateRecord(ID, D, /*JustLoaded=*/true)); in ReadDeclRecord()
4134 if (auto *Class = dyn_cast<ObjCInterfaceDecl>(D)) in ReadDeclRecord()
4146 InterestingDecl(D, Reader.hasPendingBody())); in ReadDeclRecord()
4148 return D; in ReadDeclRecord()
4169 InterestingDecl D = PotentiallyInterestingDecls.front(); in PassInterestingDeclsToConsumer() local
4171 if (isConsumerInterestedIn(getContext(), D.getDecl(), D.hasPendingBody())) in PassInterestingDeclsToConsumer()
4172 PassInterestingDeclToConsumer(D.getDecl()); in PassInterestingDeclsToConsumer()
4181 Decl *D = Record.D; in loadDeclUpdateRecords() local
4196 Record.JustLoaded || isConsumerInterestedIn(getContext(), D, false); in loadDeclUpdateRecords()
4224 Reader.UpdateDecl(D, PendingLazySpecializationIDs); in loadDeclUpdateRecords()
4229 isConsumerInterestedIn(getContext(), D, Reader.hasPendingBody())) { in loadDeclUpdateRecords()
4231 InterestingDecl(D, Reader.hasPendingBody())); in loadDeclUpdateRecords()
4237 assert((PendingLazySpecializationIDs.empty() || isa<ClassTemplateDecl>(D) || in loadDeclUpdateRecords()
4238 isa<FunctionTemplateDecl>(D) || isa<VarTemplateDecl>(D)) && in loadDeclUpdateRecords()
4240 if (auto *CTD = dyn_cast<ClassTemplateDecl>(D)) in loadDeclUpdateRecords()
4242 else if (auto *FTD = dyn_cast<FunctionTemplateDecl>(D)) in loadDeclUpdateRecords()
4244 else if (auto *VTD = dyn_cast<VarTemplateDecl>(D)) in loadDeclUpdateRecords()
4254 auto *DC = cast<DeclContext>(D)->getPrimaryContext(); in loadDeclUpdateRecords()
4308 auto *D = GetLocalDecl(*M, Record[N - I - 1]); in loadPendingDeclChain() local
4309 ASTDeclReader::attachPreviousDecl(*this, D, MostRecent, CanonDecl); in loadPendingDeclChain()
4310 MostRecent = D; in loadPendingDeclChain()
4427 ObjCInterfaceDecl *D, in loadObjCCategories() argument
4429 ObjCCategoriesVisitor Visitor(*this, D, CategoriesDeserialized, ID, in loadObjCCategories()
4435 static void forAllLaterRedecls(DeclT *D, Fn F) { in forAllLaterRedecls() argument
4436 F(D); in forAllLaterRedecls()
4441 auto *MostRecent = D->getMostRecentDecl(); in forAllLaterRedecls()
4445 Found = (Redecl == D); in forAllLaterRedecls()
4449 for (auto *Redecl = MostRecent; Redecl != D; in forAllLaterRedecls()
4455 void ASTDeclReader::UpdateDecl(Decl *D, in UpdateDecl() argument
4460 auto *RD = cast<CXXRecordDecl>(D); in UpdateDecl()
4483 if (auto *TU = dyn_cast<TranslationUnitDecl>(D)) in UpdateDecl()
4486 cast<NamespaceDecl>(D)->setAnonymousNamespace(Anon); in UpdateDecl()
4492 auto *VD = cast<VarDecl>(D); in UpdateDecl()
4509 if (auto *VTSD = dyn_cast<VarTemplateSpecializationDecl>(D)) { in UpdateDecl()
4511 } else if (auto *VD = dyn_cast<VarDecl>(D)) { in UpdateDecl()
4514 auto *FD = cast<FunctionDecl>(D); in UpdateDecl()
4526 auto *Param = cast<ParmVarDecl>(D); in UpdateDecl()
4541 auto *FD = cast<FieldDecl>(D); in UpdateDecl()
4558 auto *FD = cast<FunctionDecl>(D); in UpdateDecl()
4580 auto *RD = cast<CXXRecordDecl>(D); in UpdateDecl()
4634 if (!D->hasAttrs()) in UpdateDecl()
4635 D->setAttrsImpl(Attrs, Reader.getContext()); in UpdateDecl()
4644 auto *First = cast<CXXDestructorDecl>(D->getCanonicalDecl()); in UpdateDecl()
4659 auto *FD = cast<FunctionDecl>(D); in UpdateDecl()
4677 auto *FD = cast<FunctionDecl>(D); in UpdateDecl()
4686 D->markUsed(Reader.getContext()); in UpdateDecl()
4690 Reader.getContext().setManglingNumber(cast<NamedDecl>(D), in UpdateDecl()
4695 Reader.getContext().setStaticLocalNumber(cast<VarDecl>(D), in UpdateDecl()
4700 D->addAttr(OMPThreadPrivateDeclAttr::CreateImplicit( in UpdateDecl()
4710 D->addAttr(OMPAllocateDeclAttr::CreateImplicit( in UpdateDecl()
4718 auto *Exported = cast<NamedDecl>(D); in UpdateDecl()
4729 D->addAttr(OMPDeclareTargetDeclAttr::CreateImplicit( in UpdateDecl()
4739 D->addAttr(Attrs[0]); in UpdateDecl()