reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Derived Classes

tools/clang/include/clang/AST/Decl.h
  108 class TranslationUnitDecl : public Decl, public DeclContext {
  140 class PragmaCommentDecl final
  174 class PragmaDetectMismatchDecl final
  222 class ExternCContextDecl : public Decl, public DeclContext {
  249 class NamedDecl : public Decl {
 3923 class FileScopeAsmDecl : public Decl {
 3958 class BlockDecl : public Decl, public DeclContext {
 4147 class CapturedDecl final
 4252 class ImportDecl final : public Decl,
 4317 class ExportDecl final : public Decl, public DeclContext {
 4364 class EmptyDecl : public Decl {
tools/clang/include/clang/AST/DeclCXX.h
   87 class AccessSpecDecl : public Decl {
 2753 class LinkageSpecDecl : public Decl, public DeclContext {
 3669 class StaticAssertDecl : public Decl {
tools/clang/include/clang/AST/DeclFriend.h
   53 class FriendDecl final
tools/clang/include/clang/AST/DeclObjC.h
 2758 class ObjCPropertyImplDecl : public Decl {
tools/clang/include/clang/AST/DeclOpenMP.h
   39 class OMPThreadPrivateDecl final
  345 class OMPRequiresDecl final
  422 class OMPAllocateDecl final
tools/clang/include/clang/AST/DeclTemplate.h
 2265 class FriendTemplateDecl : public Decl {
 2425 class ClassScopeFunctionSpecializationDecl : public Decl {

Declarations

tools/clang/include/clang/AST/APValue.h
   28   class Decl;
tools/clang/include/clang/AST/ASTConsumer.h
   20   class Decl;
tools/clang/include/clang/AST/ASTFwd.h
   19 class Decl;
tools/clang/include/clang/AST/ASTImporter.h
   40 class Decl;
tools/clang/include/clang/AST/ASTMutationListener.h
   22   class Decl;
tools/clang/include/clang/AST/ASTStructuralEquivalence.h
   27 class Decl;
tools/clang/include/clang/AST/Comment.h
   24 class Decl;
tools/clang/include/clang/AST/CommentSema.h
   25 class Decl;
tools/clang/include/clang/AST/DeclGroup.h
   23 class Decl;
tools/clang/include/clang/AST/Expr.h
   47   class Decl;
tools/clang/include/clang/AST/ODRHash.h
   28 class Decl;
tools/clang/include/clang/AST/PrettyDeclStackTrace.h
   24 class Decl;
tools/clang/include/clang/AST/RawCommentList.h
   23 class Decl;
tools/clang/include/clang/AST/Redeclarable.h
   28 class Decl;
tools/clang/include/clang/AST/Stmt.h
   47 class Decl;
tools/clang/include/clang/AST/StmtIterator.h
   23 class Decl;
tools/clang/include/clang/Analysis/CFG.h
   49 class Decl;
tools/clang/include/clang/Analysis/CallGraph.h
   32 class Decl;
tools/clang/include/clang/Analysis/CloneDetection.h
   24 class Decl;
tools/clang/include/clang/Analysis/PathDiagnostic.h
   46 class Decl;
tools/clang/include/clang/CodeGen/ModuleBuilder.h
   28   class Decl;
tools/clang/include/clang/CodeGen/SwiftCallingConv.h
   30 class Decl;
tools/clang/include/clang/Frontend/ASTUnit.h
   68 class Decl;
tools/clang/include/clang/Index/DeclOccurrence.h
   18 class Decl;
tools/clang/include/clang/Index/IndexSymbol.h
   18   class Decl;
tools/clang/include/clang/Index/IndexingAction.h
   25   class Decl;
tools/clang/include/clang/Index/USRGeneration.h
   17 class Decl;
tools/clang/include/clang/Sema/AnalysisBasedWarnings.h
   21 class Decl;
tools/clang/include/clang/Sema/CodeCompleteConsumer.h
   39 class Decl;
tools/clang/include/clang/Sema/IdentifierResolver.h
   26 class Decl;
tools/clang/include/clang/Sema/Ownership.h
   33 class Decl;
tools/clang/include/clang/Sema/ParsedAttr.h
   36 class Decl;
tools/clang/include/clang/Sema/Scope.h
   32 class Decl;
tools/clang/include/clang/Sema/Sema.h
  107   class Decl;
tools/clang/include/clang/Sema/Template.h
   33 class Decl;
tools/clang/include/clang/Sema/TemplateDeduction.h
   30 class Decl;
tools/clang/include/clang/Serialization/ASTDeserializationListener.h
   22 class Decl;
tools/clang/include/clang/Serialization/ASTReader.h
   84 class Decl;
tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h
   48 class Decl;
tools/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h
   31 class Decl;
tools/clang/include/clang/StaticAnalyzer/Core/IssueHash.h
   14 class Decl;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h
   47 class Decl;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
   52 class Decl;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h
   47 class Decl;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h
   38 class Decl;
tools/clang/include/clang/Tooling/Refactoring/Rename/USRFinder.h
   26 class Decl;
tools/clang/lib/ARCMigrate/Transforms.h
   18   class Decl;
tools/clang/lib/CodeGen/CGCall.h
   36   class Decl;
tools/clang/lib/CodeGen/CodeGenFunction.h
   59 class Decl;
tools/clang/lib/CodeGen/CodeGenModule.h
   63 class Decl;
tools/clang/lib/CodeGen/CoverageMappingGen.h
   29 class Decl;
tools/clang/lib/CodeGen/TargetInfo.h
   33 class Decl;
tools/clang/lib/CodeGen/VarBypassDetector.h
   24 class Decl;
tools/clang/lib/Index/IndexingContext.h
   21   class Decl;
tools/clang/tools/extra/clangd/AST.h
   23 class Decl;
tools/clang/tools/libclang/CXCursor.h
   27 class Decl;
tools/lldb/include/lldb/Core/ClangForward.h
   42 class Decl;
tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.h
   23 class Decl;

References

gen/tools/clang/include/clang/Sema/AttrParsedAttrImpl.inc
    9 static bool defaultAppertainsTo(Sema &, const ParsedAttr &,const Decl *) {
   25 static bool checkAMDGPUFlatWorkGroupSizeAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
   38 static bool checkAMDGPUNumSGPRAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
   51 static bool checkAMDGPUNumVGPRAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
   64 static bool checkAMDGPUWavesPerEUAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
   82 static bool checkAVRSignalAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  100 static bool isStruct(const Decl *D) {
  106 static bool checkAbiTagAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  122 static bool checkAcquireCapabilityAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  155 static bool isSharedVar(const Decl *D) {
  161 static bool checkAcquiredAfterAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  170 static bool checkAcquiredBeforeAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  179 static bool isGlobalVar(const Decl *D) {
  185 static bool checkAliasAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  199 static bool checkAlignValueAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  235 static bool isHasFunctionProto(const Decl *D) {
  236   if (const auto *S = dyn_cast<Decl>(D))
  236   if (const auto *S = dyn_cast<Decl>(D))
  244 static bool checkAllocAlignAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  253 static bool checkAllocSizeAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  266 static bool checkAlwaysDestroyAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  279 static bool checkAlwaysInlineAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  318 static bool isFunctionLike(const Decl *D) {
  319   if (const auto *S = dyn_cast<Decl>(D))
  319   if (const auto *S = dyn_cast<Decl>(D))
  324 static bool checkAnyX86NoCfCheckAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  337 static bool checkArcWeakrefUnavailableAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  350 static bool checkArgumentWithTypeTagAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  383 static bool checkArmMveAliasAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  401 static bool isInlineFunction(const Decl *D) {
  407 static bool checkArtificialAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  416 static bool checkAssertCapabilityAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  445 static bool checkAssertExclusiveLockAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  454 static bool checkAssertSharedLockAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  463 static bool checkAssumeAlignedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  477 static bool checkAvailabilityAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  504 static bool checkCFAuditedTransferAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  517 static bool checkCFConsumedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  530 static bool checkCFICanonicalJumpTableAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  543 static bool checkCFUnknownTransferAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  556 static bool checkCPUDispatchAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  569 static bool checkCPUSpecificAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  582 static bool checkCUDAConstantAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  604 static bool checkCUDADeviceAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  618 static bool checkCUDAGlobalAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  631 static bool checkCUDAHostAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  644 static bool checkCUDAInvalidTargetAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  653 static bool checkCUDALaunchBoundsAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  667 static bool checkCUDASharedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  680 static bool checkCXX11NoReturnAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  693 static bool checkCallableWhenAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  706 static bool checkCallbackAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  719 static bool checkCapabilityAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  753 static bool checkCarriesDependencyAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  768 static bool isLocalVar(const Decl *D) {
  774 static bool checkCleanupAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  783 static bool checkCodeSegAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  792 static bool checkColdAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  805 static bool checkCommonAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  818 static bool checkConstInitAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  858 static bool checkConstructorAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  871 static bool checkConsumableAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  884 static bool checkConsumableAutoCastAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  897 static bool checkConsumableSetOnReadAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  910 static bool checkConvergentAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  923 static bool checkDLLExportAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  944 static bool checkDLLExportStaticLocalAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  953 static bool checkDLLImportAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  969 static bool checkDLLImportStaticLocalAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  978 static bool checkDestructorAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  991 static bool checkDiagnoseIfAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1000 static bool checkDisableTailCallsAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1014 static bool checkEmptyBasesAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1028 static bool checkEnableIfAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1041 static bool checkEnumExtensibilityAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1054 static bool checkExcludeFromExplicitInstantiationAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1069 static bool checkExclusiveTrylockFunctionAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1078 static bool checkExtVectorTypeAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1087 static bool checkExternalSourceSymbolAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1114 static bool checkFlagEnumAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1127 static bool checkFlattenAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1140 static bool checkFormatAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1149 static bool checkFormatArgAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1158 static bool checkGNUInlineAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1171 static bool checkGuardedByAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1180 static bool checkGuardedVarAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1189 static bool checkHIPPinnedShadowAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1211 static bool checkHotAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1224 static bool isObjCInstanceMethod(const Decl *D) {
 1230 static bool checkIBActionAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1243 static bool checkIFuncAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1261 static bool checkInitPriorityAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1274 static bool checkInternalLinkageAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1289 static bool checkLTOVisibilityPublicAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1302 static bool checkLayoutVersionAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1311 static bool isImplicitObjectParameter(const Decl *D) {
 1317 static bool checkLifetimeBoundAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1326 static bool checkLockReturnedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1335 static bool checkLockableAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1348 static bool checkLocksExcludedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1379 static bool checkMIGServerRoutineAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1394 static bool checkMSAllocatorAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1432 static bool checkMSNoVTableAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1441 static bool checkMSStructAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1454 static bool checkMicroMipsAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1472 static bool checkMinSizeAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1486 static bool checkMinVectorWidthAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1499 static bool checkMips16AppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1512 static bool checkMipsLongCallAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1550 static bool checkMipsShortCallAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1583 static bool checkModeAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1592 static bool checkNSConsumedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1605 static bool checkNSConsumesSelfAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1618 static bool checkNakedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1631 static bool checkNoAliasAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1640 static bool checkNoCommonAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1653 static bool isNonParmVar(const Decl *D) {
 1655     return S->getKind() != Decl::ParmVar;
 1659 static bool checkNoDebugAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1675 static bool checkNoDestroyAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1688 static bool checkNoDuplicateAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1701 static bool checkNoEscapeAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1714 static bool checkNoInlineAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1727 static bool checkNoInstrumentFunctionAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1740 static bool checkNoMicroMipsAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1753 static bool checkNoMips16AppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1766 static bool checkNoSanitizeAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1781 static bool checkNoSanitizeSpecificAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1795 static bool checkNoSpeculativeLoadHardeningAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1809 static bool checkNoSplitStackAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1822 static bool checkNoStackProtectorAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1835 static bool checkNoThreadSafetyAnalysisAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1848 static bool checkNoThrowAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1861 static bool isNonBitField(const Decl *D) {
 1867 static bool checkNoUniqueAddressAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1881 static bool checkNonNullAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1890 static bool checkNotTailCalledAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1903 static bool checkOSConsumedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1916 static bool isNonStaticCXXMethod(const Decl *D) {
 1922 static bool checkOSConsumesThisAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1931 static bool checkOSReturnsNotRetainedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1947 static bool checkOSReturnsRetainedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1963 static bool checkOSReturnsRetainedOnNonZeroAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1976 static bool checkOSReturnsRetainedOnZeroAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1989 static bool checkObjCBoxableAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2002 static bool checkObjCBridgeAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2016 static bool checkObjCBridgeMutableAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2029 static bool checkObjCBridgeRelatedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2042 static bool checkObjCClassStubAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2064 static bool checkObjCDesignatedInitializerAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2077 static bool checkObjCExceptionAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2090 static bool checkObjCExplicitProtocolImplAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2103 static bool checkObjCExternallyRetainedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2128 static bool checkObjCMethodFamilyAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2141 static bool checkObjCNonLazyClassAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2164 static bool checkObjCPreciseLifetimeAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2177 static bool checkObjCRequiresPropertyDefsAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2190 static bool checkObjCRequiresSuperAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2203 static bool checkObjCReturnsInnerPointerAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2217 static bool checkObjCRootClassAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2230 static bool checkObjCRuntimeNameAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2244 static bool checkObjCRuntimeVisibleAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2257 static bool checkObjCSubclassingRestrictedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2270 static bool checkOpenCLAccessAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2300 static bool checkOpenCLIntelReqdSubGroupSizeAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2313 static bool checkOpenCLKernelAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2322 static bool checkOpenCLNoSVMAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2344 static bool checkOptimizeNoneAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2358 static bool checkOverloadableAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2371 static bool checkOwnerAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2384 static bool checkOwnershipAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2423 static bool checkParamTypestateAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2436 static bool checkPassObjectSizeAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2473 static bool checkPointerAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2486 static bool checkPragmaClangBSSSectionAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2495 static bool checkPragmaClangDataSectionAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2504 static bool checkPragmaClangRelroSectionAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2513 static bool checkPragmaClangRodataSectionAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2522 static bool checkPragmaClangTextSectionAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2531 static bool checkPtGuardedByAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2540 static bool checkPtGuardedVarAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2549 static bool isNonStaticNonConstCXXMethod(const Decl *D) {
 2555 static bool checkReinitializesAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2564 static bool checkReleaseCapabilityAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2601 static bool checkRenderScriptKernelAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2623 static bool checkReqdWorkGroupSizeAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2636 static bool checkRequiresCapabilityAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2673 static bool checkRestrictAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2704 static bool checkReturnTypestateAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2718 static bool checkReturnsNonNullAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2732 static bool checkReturnsTwiceAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2745 static bool checkScopedLockableAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2758 static bool checkSectionAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2792 static bool checkSetTypestateAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2805 static bool checkSharedTrylockFunctionAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2814 static bool checkSpeculativeLoadHardeningAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2828 static bool checkSwiftContextAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2841 static bool checkSwiftErrorResultAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2854 static bool checkSwiftIndirectResultAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2867 static bool isTLSVar(const Decl *D) {
 2873 static bool checkTLSModelAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2886 static bool checkTargetAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2899 static bool checkTestTypestateAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2912 static bool checkThreadAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2930 static bool checkTrivialABIAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2943 static bool checkTryAcquireCapabilityAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2972 static bool checkUninitializedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2981 static bool checkUnusedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 3010 static bool isNonLocalVar(const Decl *D) {
 3016 static bool checkUsedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 3025 static bool checkUuidAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 3043 static bool checkVecReturnAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 3056 static bool checkVecTypeHintAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 3069 static bool checkWarnUnusedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 3082 static bool checkWarnUnusedResultAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 3120 static bool checkWeakAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 3135 static bool checkWeakRefAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 3149 static bool checkWebAssemblyImportModuleAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 3167 static bool checkWebAssemblyImportNameAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 3180 static bool checkWorkGroupSizeHintAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 3193 static bool checkXRayInstrumentAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 3231 static bool checkXRayLogArgsAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 3521 static bool checkAttributeMatchRuleAppliesTo(const Decl *D, attr::SubjectMatchRule rule) {
include/llvm/ADT/ArrayRef.h
   43     using iterator = const T *;
   44     using const_iterator = const T *;
   50     const T *Data = nullptr;
   66     /*implicit*/ ArrayRef(const T &OneElt)
   70     /*implicit*/ ArrayRef(const T *data, size_t length)
   74     ArrayRef(const T *begin, const T *end)
   74     ArrayRef(const T *begin, const T *end)
   81     /*implicit*/ ArrayRef(const SmallVectorTemplateCommon<T, U> &Vec)
   87     /*implicit*/ ArrayRef(const std::vector<T, A> &Vec)
   92     /*implicit*/ constexpr ArrayRef(const std::array<T, N> &Arr)
   97     /*implicit*/ constexpr ArrayRef(const T (&Arr)[N]) : Data(Arr), Length(N) {}
  100     /*implicit*/ ArrayRef(const std::initializer_list<T> &Vec)
  108         const ArrayRef<U *> &A,
  110            std::is_convertible<U *const *, T const *>::value>::type * = nullptr)
  118       const SmallVectorTemplateCommon<U *, DummyT> &Vec,
  120           std::is_convertible<U *const *, T const *>::value>::type * = nullptr)
  127     ArrayRef(const std::vector<U *, A> &Vec,
  129                  std::is_convertible<U *const *, T const *>::value>::type* = 0)
  145     const T *data() const { return Data; }
  151     const T &front() const {
  157     const T &back() const {
  163     template <typename Allocator> ArrayRef<T> copy(Allocator &A) {
  178     ArrayRef<T> slice(size_t N, size_t M) const {
  184     ArrayRef<T> slice(size_t N) const { return slice(N, size() - N); }
  187     ArrayRef<T> drop_front(size_t N = 1) const {
  193     ArrayRef<T> drop_back(size_t N = 1) const {
  200     template <class PredicateT> ArrayRef<T> drop_while(PredicateT Pred) const {
  206     template <class PredicateT> ArrayRef<T> drop_until(PredicateT Pred) const {
  211     ArrayRef<T> take_front(size_t N = 1) const {
  218     ArrayRef<T> take_back(size_t N = 1) const {
  226     template <class PredicateT> ArrayRef<T> take_while(PredicateT Pred) const {
  232     template <class PredicateT> ArrayRef<T> take_until(PredicateT Pred) const {
  239     const T &operator[](size_t Index) const {
  249     typename std::enable_if<std::is_same<U, T>::value, ArrayRef<T>>::type &
  257     typename std::enable_if<std::is_same<U, T>::value, ArrayRef<T>>::type &
  263     std::vector<T> vec() const {
  270     operator std::vector<T>() const {
include/llvm/ADT/DenseMapInfo.h
   39   static inline T* getEmptyKey() {
   41     Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
   45   static inline T* getTombstoneKey() {
   47     Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
   51   static unsigned getHashValue(const T *PtrVal) {
   56   static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
   56   static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
include/llvm/ADT/STLExtras.h
   75       typename std::add_pointer<typename std::add_const<T>::type>::type;
include/llvm/ADT/SmallSet.h
  249 class SmallSet<PointeeType*, N> : public SmallPtrSet<PointeeType*, N> {};
include/llvm/Support/Allocator.h
  342     return Out / alignof(T);
include/llvm/Support/Casting.h
   34   using SimpleType = From; // The real type this represents...
   37   static SimpleType &getSimplifiedValue(From &Val) { return Val; }
   41   using NonConstSimpleType = typename simplify_type<From>::SimpleType;
   47   static RetType getSimplifiedValue(const From& Val) {
   57   static inline bool doit(const From &Val) {
   66   static inline bool doit(const From &) { return true; }
   76   static inline bool doit(const From &Val) {
   77     return isa_impl<To, From>::doit(Val);
  104   static inline bool doit(const From *Val) {
  106     return isa_impl<To, From>::doit(*Val);
  106     return isa_impl<To, From>::doit(*Val);
  122     return isa_impl_wrap<To, SimpleFrom,
  132     return isa_impl_cl<To,FromTy>::doit(Val);
  141 template <class X, class Y> LLVM_NODISCARD inline bool isa(const Y &Val) {
  142   return isa_impl_wrap<X, const Y,
  142   return isa_impl_wrap<X, const Y,
  143                        typename simplify_type<const Y>::SimpleType>::doit(Val);
  172   using ret_type = To *;       // Pointer arg case, return Ty*
  176   using ret_type = const To *; // Constant pointer arg case, return const Ty*
  198   using ret_type = typename cast_retty<To, SimpleFrom>::ret_type;
  204   using ret_type = typename cast_retty_impl<To,FromTy>::ret_type;
  204   using ret_type = typename cast_retty_impl<To,FromTy>::ret_type;
  210       To, From, typename simplify_type<From>::SimpleType>::ret_type;
  210       To, From, typename simplify_type<From>::SimpleType>::ret_type;
  210       To, From, typename simplify_type<From>::SimpleType>::ret_type;
  227   static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
  227   static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
  227   static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
  228     typename cast_retty<To, FromTy>::ret_type Res2
  228     typename cast_retty<To, FromTy>::ret_type Res2
  236       std::is_same<X, typename simplify_type<X>::SimpleType>::value;
  236       std::is_same<X, typename simplify_type<X>::SimpleType>::value;
  256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
  256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
  256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
  258   return cast_convert_val<X, Y,
  259                           typename simplify_type<Y>::SimpleType>::doit(Val);
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  265   return cast_convert_val<X, Y*,
  265   return cast_convert_val<X, Y*,
  266                           typename simplify_type<Y*>::SimpleType>::doit(Val);
  305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  306 cast_or_null(Y *Val) {
  309   return cast<X>(Val);
  337 LLVM_NODISCARD inline typename cast_retty<X, Y>::ret_type dyn_cast(Y &Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  367 dyn_cast_or_null(Y *Val) {
  368   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
  368   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
include/llvm/Support/PointerLikeTypeTraits.h
   56   static inline void *getAsVoidPointer(T *P) { return P; }
   57   static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); }
   59   enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value };
   91   typedef PointerLikeTypeTraits<T *> NonConst;
   93   static inline const void *getAsVoidPointer(const T *P) {
   96   static inline const T *getFromVoidPointer(const void *P) {
include/llvm/Support/type_traits.h
   55 struct add_const_past_pointer { using type = const T; };
tools/clang/examples/PrintFunctionNames/PrintFunctionNames.cpp
   36       const Decl *D = *i;
tools/clang/include/clang/AST/APValue.h
  192   typedef llvm::PointerIntPair<const Decl *, 1, bool> BaseOrMemberType;
tools/clang/include/clang/AST/ASTConsumer.h
  140   virtual bool shouldSkipFunctionBody(Decl *D) { return true; }
tools/clang/include/clang/AST/ASTContext.h
  403   llvm::DenseMap<const Decl*, AttrVec*> DeclAttrs;
  408   llvm::DenseMap<Decl*, Decl*> MergedDecls;
  408   llvm::DenseMap<Decl*, Decl*> MergedDecls;
  420     llvm::SmallVector<Decl*, 4> Initializers;
  517   llvm::DenseMap<const Decl *, std::unique_ptr<MangleNumberingContext>>
  637   std::vector<Decl *> getTraversalScope() const { return TraversalScope; }
  638   void setTraversalScope(const std::vector<Decl *> &);
  664   template <typename NodeT> DynTypedNodeList getParents(const NodeT &Node) {
  749   mutable llvm::DenseMap<const Decl *, const RawComment *> DeclRawComments;
  756   mutable llvm::DenseMap<const Decl *, const Decl *> RedeclChainComments;
  756   mutable llvm::DenseMap<const Decl *, const Decl *> RedeclChainComments;
  765   mutable llvm::DenseMap<const Decl *, const Decl *> CommentlessRedeclChains;
  765   mutable llvm::DenseMap<const Decl *, const Decl *> CommentlessRedeclChains;
  769   mutable llvm::DenseMap<const Decl *, comments::FullComment *> ParsedComments;
  776   void cacheRawCommentForDecl(const Decl &OriginalD,
  785       const Decl *D, const SourceLocation RepresentativeLocForDecl,
  790   RawComment *getRawCommentForDeclNoCache(const Decl *D) const;
  809   getRawCommentForAnyRedecl(const Decl *D,
  810                             const Decl **OriginalDecl = nullptr) const;
  819   void attachCommentsToJustParsedDecls(ArrayRef<Decl *> Decls,
  827   comments::FullComment *getCommentForDecl(const Decl *D,
  833   comments::FullComment *getLocalCommentForDeclUncached(const Decl *D) const;
  836                                          const Decl *D) const;
  884   AttrVec& getDeclAttrs(const Decl *D);
  887   void eraseDeclAttrs(const Decl *D);
  970   Decl *getPrimaryMergedDecl(Decl *D) {
  970   Decl *getPrimaryMergedDecl(Decl *D) {
  971     Decl *Result = MergedDecls.lookup(D);
  974   void setPrimaryMergedDecl(Decl *D, Decl *Primary) {
  974   void setPrimaryMergedDecl(Decl *D, Decl *Primary) {
 1001   void addModuleInitializer(Module *M, Decl *Init);
 1006   ArrayRef<Decl*> getModuleInitializers(Module *M);
 1068   mutable Decl *VaListTagDecl;
 1813   void getObjCEncodingForTypeQualifier(Decl::ObjCDeclQualifier QT,
 1837                                              const Decl *Container) const;
 1844                                                   const Decl *Container) const;
 1920   Decl *getVaListTagDecl() const;
 2189   CharUnits getDeclAlign(const Decl *D, bool ForAlignof = false) const;
 2270   void CollectInheritedProtocols(const Decl *CDecl,
 2785   bool DeclMustBeEmitted(const Decl *D);
 2818                                                    const Decl *D);
 2953   void getObjCEncodingForMethodParameter(Decl::ObjCDeclQualifier QT,
 3008   std::vector<Decl *> TraversalScope;
tools/clang/include/clang/AST/ASTImporter.h
   80   llvm::SmallVector<Decl*, 2> getCanonicalForwardRedeclChain(Decl* D);
   80   llvm::SmallVector<Decl*, 2> getCanonicalForwardRedeclChain(Decl* D);
   87     using NonEquivalentDeclSet = llvm::DenseSet<std::pair<Decl *, Decl *>>;
   87     using NonEquivalentDeclSet = llvm::DenseSet<std::pair<Decl *, Decl *>>;
  173       using VecTy = llvm::SmallVector<Decl *, 32>;
  175       void push(Decl *D) {
  213       llvm::SmallDenseMap<Decl *, int, 32> Aux;
  229         llvm::SmallDenseMap<Decl *, SavedImportPathsForOneDecl, 32>;
  252     llvm::DenseMap<Decl *, Decl *> ImportedDecls;
  252     llvm::DenseMap<Decl *, Decl *> ImportedDecls;
  260     llvm::DenseMap<Decl *, ImportError> ImportDeclErrors;
  264     llvm::DenseMap<Decl *, Decl *> ImportedFromDecls;
  264     llvm::DenseMap<Decl *, Decl *> ImportedFromDecls;
  286     void AddToLookupTable(Decl *ToD);
  292     virtual Expected<Decl *> ImportImpl(Decl *From);
  292     virtual Expected<Decl *> ImportImpl(Decl *From);
  373     llvm::Expected<Decl *> Import(Decl *FromD);
  373     llvm::Expected<Decl *> Import(Decl *FromD);
  374     llvm::Expected<const Decl *> Import(const Decl *FromD) {
  374     llvm::Expected<const Decl *> Import(const Decl *FromD) {
  381     Decl *GetAlreadyImportedOrNull(const Decl *FromD) const;
  381     Decl *GetAlreadyImportedOrNull(const Decl *FromD) const;
  385     TranslationUnitDecl *GetFromTU(Decl *ToD);
  499     LLVM_NODISCARD llvm::Error ImportDefinition(Decl *From);
  557     virtual void CompleteDecl(Decl* D);
  561     virtual void Imported(Decl *From, Decl *To) {}
  561     virtual void Imported(Decl *From, Decl *To) {}
  563     void RegisterImportedDecl(Decl *FromD, Decl *ToD);
  563     void RegisterImportedDecl(Decl *FromD, Decl *ToD);
  568     Decl *MapImported(Decl *From, Decl *To);
  568     Decl *MapImported(Decl *From, Decl *To);
  568     Decl *MapImported(Decl *From, Decl *To);
  576     virtual Decl *GetOriginalDecl(Decl *To) { return nullptr; }
  576     virtual Decl *GetOriginalDecl(Decl *To) { return nullptr; }
  581     llvm::Optional<ImportError> getImportDeclErrorIfAny(Decl *FromD) const;
  584     void setImportDeclError(Decl *From, ImportError Error);
  595     static llvm::Optional<unsigned> getFieldIndex(Decl *F);
tools/clang/include/clang/AST/ASTImporterSharedState.h
   41   llvm::DenseMap<Decl *, ImportError> ImportErrors;
   55   void addDeclToLookup(Decl *D) {
   61   void removeDeclFromLookup(Decl *D) {
   67   llvm::Optional<ImportError> getImportDeclErrorIfAny(Decl *ToD) const {
   75   void setImportDeclError(Decl *To, ImportError Error) {
tools/clang/include/clang/AST/ASTLambda.h
   51 inline bool isLambdaConversionOperator(Decl *D) {
tools/clang/include/clang/AST/ASTMutationListener.h
   54   virtual void AddedVisibleDecl(const DeclContext *DC, const Decl *D) {}
   57   virtual void AddedCXXImplicitMember(const CXXRecordDecl *RD, const Decl *D) {}
  114   virtual void DeclarationMarkedUsed(const Decl *D) {}
  120   virtual void DeclarationMarkedOpenMPThreadPrivate(const Decl *D) {}
  127   virtual void DeclarationMarkedOpenMPDeclareTarget(const Decl *D,
  133   virtual void DeclarationMarkedOpenMPAllocate(const Decl *D, const Attr *A) {}
tools/clang/include/clang/AST/ASTNodeTraverser.h
   77   void Visit(const Decl *D) {
  160              const Decl *From = nullptr, const char *Label = nullptr) {
  210     if (const auto *D = N.get<Decl>())
  210     if (const auto *D = N.get<Decl>())
  230     for (const auto *D : (Deserialize ? DC->decls() : DC->noload_decls()))
  255                                const Decl *From = nullptr,
tools/clang/include/clang/AST/ASTStructuralEquivalence.h
   47   std::queue<std::pair<Decl *, Decl *>> DeclsToCheck;
   47   std::queue<std::pair<Decl *, Decl *>> DeclsToCheck;
   51   llvm::DenseSet<std::pair<Decl *, Decl *>> VisitedDecls;
   51   llvm::DenseSet<std::pair<Decl *, Decl *>> VisitedDecls;
   55   llvm::DenseSet<std::pair<Decl *, Decl *>> &NonEquivalentDecls;
   55   llvm::DenseSet<std::pair<Decl *, Decl *>> &NonEquivalentDecls;
   74       llvm::DenseSet<std::pair<Decl *, Decl *>> &NonEquivalentDecls,
   74       llvm::DenseSet<std::pair<Decl *, Decl *>> &NonEquivalentDecls,
   91   bool IsEquivalent(Decl *D1, Decl *D2);
   91   bool IsEquivalent(Decl *D1, Decl *D2);
  127   bool CheckCommonEquivalence(Decl *D1, Decl *D2);
  127   bool CheckCommonEquivalence(Decl *D1, Decl *D2);
  132   bool CheckKindSpecificEquivalence(Decl *D1, Decl *D2);
  132   bool CheckKindSpecificEquivalence(Decl *D1, Decl *D2);
tools/clang/include/clang/AST/ASTTypeTraits.h
   65     return ASTNodeKind(KindToKindId<T>::Id);
   70   static ASTNodeKind getFromNode(const Decl &D);
  234   static DynTypedNode create(const T &Node) {
  235     return BaseConverter<T>::create(Node);
  251   const T *get() const {
  252     return BaseConverter<T>::get(NodeKind, Storage.buffer);
  259   const T &getUnchecked() const {
  260     return BaseConverter<T>::getUnchecked(NodeKind, Storage.buffer);
  394     static const T *get(ASTNodeKind NodeKind, const char Storage[]) {
  395       if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
  399     static const T &getUnchecked(ASTNodeKind NodeKind, const char Storage[]) {
  401       return *cast<T>(static_cast<const BaseT *>(
  404     static DynTypedNode create(const BaseT &Node) {
  469     : public DynCastPtrConverter<T, Decl> {};
  469     : public DynCastPtrConverter<T, Decl> {};
tools/clang/include/clang/AST/Attr.h
  240   ParamIdx(unsigned Idx, const Decl *D)
tools/clang/include/clang/AST/Comment.h
  983   const Decl *CommentDecl;
  993   const Decl *CurrentDecl;
 1119   const Decl *getDecl() const LLVM_READONLY {
tools/clang/include/clang/AST/CommentSema.h
   76   void setDecl(const Decl *D);
tools/clang/include/clang/AST/Decl.h
  108 class TranslationUnitDecl : public Decl, public DeclContext {
  128   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
  141     : public Decl,
  168   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
  175     : public Decl,
  201   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
  222 class ExternCContextDecl : public Decl, public DeclContext {
  234   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
  249 class NamedDecl : public Decl {
  463   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
  518   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
  632   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
  664   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
  783   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 1121     if (getKind() != Decl::Var && getKind() != Decl::Decomposition)
 1121     if (getKind() != Decl::Var && getKind() != Decl::Decomposition)
 1130     return isLocalVarDecl() || getKind() == Decl::ParmVar;
 1135     if (getKind() != Decl::Var && getKind() != Decl::Decomposition)
 1135     if (getKind() != Decl::Var && getKind() != Decl::Decomposition)
 1138     return DC->isFunctionOrMethod() && DC->getDeclKind() != Decl::Block;
 1152     return getKind() != Decl::ParmVar && getDeclContext()->isRecord();
 1533   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 1596   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 1744   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 2637   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 2854   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 2895   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 2945   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 2987   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 3083   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 3108   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 3135   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 3387   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 3661   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 3899   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 3923 class FileScopeAsmDecl : public Decl {
 3951   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 3958 class BlockDecl : public Decl, public DeclContext {
 4022   Decl *ManglingContextDecl = nullptr;
 4126   Decl *getBlockManglingContextDecl() const { return ManglingContextDecl; }
 4128   void setBlockMangling(unsigned Number, Decl *Ctx) {
 4136   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 4148     : public Decl,
 4232   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 4252 class ImportDecl final : public Decl,
 4307   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 4317 class ExportDecl final : public Decl, public DeclContext {
 4353   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 4364 class EmptyDecl : public Decl {
 4374   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 4413       (Decl::IDNS_Ordinary | Decl::IDNS_Tag | Decl::IDNS_Type);
 4413       (Decl::IDNS_Ordinary | Decl::IDNS_Tag | Decl::IDNS_Type);
 4413       (Decl::IDNS_Ordinary | Decl::IDNS_Tag | Decl::IDNS_Type);
tools/clang/include/clang/AST/DeclBase.h
  244   llvm::PointerIntPair<Decl *, 2, ModuleOwnershipKind> NextInContextAndBits;
  360       auto *D = cast<Decl>(DC);
  360       auto *D = cast<Decl>(DC);
  373   Decl(const Decl&) = delete;
  374   Decl(Decl &&) = delete;
  375   Decl &operator=(const Decl&) = delete;
  375   Decl &operator=(const Decl&) = delete;
  376   Decl &operator=(Decl&&) = delete;
  376   Decl &operator=(Decl&&) = delete;
  435   Decl *getNextDeclInContext() { return NextInContextAndBits.getPointer(); }
  436   const Decl *getNextDeclInContext() const {return NextInContextAndBits.getPointer();}
  452   Decl *getNonClosureContext();
  453   const Decl *getNonClosureContext() const {
  877   virtual Decl *getCanonicalDecl() { return this; }
  878   const Decl *getCanonicalDecl() const {
  890   virtual Decl *getNextRedeclarationImpl() { return this; }
  894   virtual Decl *getPreviousDeclImpl() { return nullptr; }
  898   virtual Decl *getMostRecentDeclImpl() { return this; }
  904     Decl *Current = nullptr;
  905     Decl *Starter;
  908     using value_type = Decl *;
  915     explicit redecl_iterator(Decl *C) : Current(C), Starter(C) {}
  923       Decl *Next = Current->getNextRedeclarationImpl();
  960   Decl *getPreviousDecl() { return getPreviousDeclImpl(); }
  964   const Decl *getPreviousDecl() const {
  975   Decl *getMostRecentDecl() { return getMostRecentDeclImpl(); }
  979   const Decl *getMostRecentDecl() const {
 1019     return (DeclKind >= Decl::firstFunction &&
 1020             DeclKind <= Decl::lastFunction) ||
 1043     Decl *Prev = getPreviousDecl();
 1082     Decl *Prev = getPreviousDecl();
 1128   static DeclContext *castToDeclContext(const Decl *);
 1129   static Decl *castFromDeclContext(const DeclContext *);
 1135   static void printGroup(Decl** Begin, unsigned NumDecls,
 1166 inline bool declaresSameEntity(const Decl *D1, const Decl *D2) {
 1166 inline bool declaresSameEntity(const Decl *D1, const Decl *D2) {
 1179   const Decl *TheDecl;
 1185   PrettyStackTraceDecl(const Decl *theDecl, SourceLocation L,
 1753   mutable Decl *FirstDecl = nullptr;
 1759   mutable Decl *LastDecl = nullptr;
 1764   static std::pair<Decl *, Decl *>
 1764   static std::pair<Decl *, Decl *>
 1765   BuildDeclChain(ArrayRef<Decl*> Decls, bool FieldsAlreadyLoaded);
 1767   DeclContext(Decl::Kind K);
 1772   Decl::Kind getDeclKind() const {
 1780     return cast<Decl>(this)->getDeclContext();
 1796     return cast<Decl>(this)->getLexicalDeclContext();
 1809     return cast<Decl>(this)->getASTContext();
 1812   bool isClosure() const { return getDeclKind() == Decl::Block; }
 1820     case Decl::ObjCCategory:
 1821     case Decl::ObjCCategoryImpl:
 1822     case Decl::ObjCImplementation:
 1823     case Decl::ObjCInterface:
 1824     case Decl::ObjCProtocol:
 1833     case Decl::Block:
 1834     case Decl::Captured:
 1835     case Decl::ObjCMethod:
 1838       return getDeclKind() >= Decl::firstFunction &&
 1839              getDeclKind() <= Decl::lastFunction;
 1845     return !isFunctionOrMethod() && getDeclKind() != Decl::LinkageSpec &&
 1846            getDeclKind() != Decl::Export;
 1850     return getDeclKind() == Decl::TranslationUnit ||
 1851            getDeclKind() == Decl::Namespace;
 1855     return getDeclKind() == Decl::TranslationUnit;
 1859     return getDeclKind() >= Decl::firstRecord &&
 1860            getDeclKind() <= Decl::lastRecord;
 1863   bool isNamespace() const { return getDeclKind() == Decl::Namespace; }
 1914   Decl *getNonClosureAncestor();
 1915   const Decl *getNonClosureAncestor() const {
 1987     Decl *Current = nullptr;
 1990     using value_type = Decl *;
 1997     explicit decl_iterator(Decl *C) : Current(C) {}
 2202   void addDecl(Decl *D);
 2212   void addDeclInternal(Decl *D);
 2220   void addHiddenDecl(Decl *D);
 2223   void removeDecl(Decl *D);
 2226   bool containsDecl(Decl *D) const;
 2230   bool containsDeclAndLoad(Decl *D) const;
 2369   bool isDeclInLexicalTraversal(const Decl *D) const {
 2384   static bool classof(const Decl *D);
 2462   static const ToTy *doit(const DeclContext *Val) {
 2463     return static_cast<const ToTy*>(Decl::castFromDeclContext(Val));
 2466   static ToTy *doit(DeclContext *Val) {
 2467     return static_cast<ToTy*>(Decl::castFromDeclContext(Val));
 2491     return To::classofKind(Val.getDeclKind());
 2514   static const ToTy *doit(const ::clang::DeclContext *Val) {
 2515     return ::clang::cast_convert_decl_context<ToTy>::doit(Val);
 2521   static ToTy *doit(::clang::DeclContext *Val) {
 2522     return ::clang::cast_convert_decl_context<ToTy>::doit(Val);
 2536   static ::clang::DeclContext *doit(const FromTy *Val) {
 2537     return FromTy::castToDeclContext(Val);
tools/clang/include/clang/AST/DeclCXX.h
   87 class AccessSpecDecl : public Decl {
  127   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
  468   void addedMember(Decl *D);
 1727   Decl *getLambdaContextDecl() const;
 1731   void setLambdaMangling(unsigned ManglingNumber, Decl *ContextDecl,
 1784   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 1897   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 2116   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 2615   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 2676   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 2743   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 2753 class LinkageSpecDecl : public Decl, public DeclContext {
 2823   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 2938   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 3051   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 3153   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 3155     return K == Decl::UsingShadow || K == Decl::ConstructorUsingShadow;
 3155     return K == Decl::UsingShadow || K == Decl::ConstructorUsingShadow;
 3265   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 3408   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 3479   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 3575   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 3664   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 3669 class StaticAssertDecl : public Decl {
 3706   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 3728       : ValueDecl(Decl::Binding, DC, IdLoc, Id, QualType()) {}
 3763   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 3764   static bool classofKind(Kind K) { return K == Decl::Binding; }
 3815   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 3865   static bool classof(const Decl *D) { return D->getKind() == MSProperty; }
tools/clang/include/clang/AST/DeclContextInternals.h
  217     else if (D->getIdentifierNamespace() & Decl::IDNS_Using) {
  219       if (D->getIdentifierNamespace() != Decl::IDNS_Using) {
  221                (*I)->getIdentifierNamespace() == Decl::IDNS_Using)
tools/clang/include/clang/AST/DeclFriend.h
   54     : public Decl,
   87       : Decl(Decl::Friend, DC, L), Friend(Friend), FriendLoc(FriendL),
   94       : Decl(Decl::Friend, Empty), UnsupportedFriend(false),
  182   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
  183   static bool classofKind(Kind K) { return K == Decl::Friend; }
tools/clang/include/clang/AST/DeclGroup.h
   25 class DeclGroup final : private llvm::TrailingObjects<DeclGroup, Decl *> {
   31   DeclGroup(unsigned numdecls, Decl** decls);
   36   static DeclGroup *Create(ASTContext &C, Decl **Decls, unsigned NumDecls);
   40   Decl*& operator[](unsigned i) {
   42     return getTrailingObjects<Decl *>()[i];
   45   Decl* const& operator[](unsigned i) const {
   47     return getTrailingObjects<Decl *>()[i];
   56   Decl* D = nullptr;
   64   explicit DeclGroupRef(Decl* d) : D(d) {}
   68   static DeclGroupRef Create(ASTContext &C, Decl **Decls, unsigned NumDecls) {
   76   using iterator = Decl **;
   77   using const_iterator = Decl * const *;
   83   Decl *getSingleDecl() {
   87   const Decl *getSingleDecl() const {
tools/clang/include/clang/AST/DeclObjC.h
  520   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
  625   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
  960   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 1130   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 1921   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 1997   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 2030   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 2259   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 2420   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 2478   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 2528   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 2720   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 2750   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 2758 class ObjCPropertyImplDecl : public Decl {
 2864   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 2865   static bool classofKind(Decl::Kind K) { return K == ObjCPropertyImpl; }
tools/clang/include/clang/AST/DeclOpenMP.h
   40     : public Decl,
   88   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
  198   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
  295   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
  334   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
  346     : public Decl,
  405   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
  423     : public Decl,
  517   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
tools/clang/include/clang/AST/DeclTemplate.h
  422   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
  939   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 1103   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 1244   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 1427   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 1594   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 1611   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 1896   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 2061   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 2248   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 2265 class FriendTemplateDecl : public Decl {
 2287       : Decl(Decl::FriendTemplate, DC, Loc), NumParams(Params.size()),
 2290   FriendTemplateDecl(EmptyShell Empty) : Decl(Decl::FriendTemplate, Empty) {}
 2331   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 2332   static bool classofKind(Kind K) { return K == Decl::FriendTemplate; }
 2404   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 2425 class ClassScopeFunctionSpecializationDecl : public Decl {
 2432       : Decl(Decl::ClassScopeFunctionSpecialization, DC, Loc),
 2436       : Decl(Decl::ClassScopeFunctionSpecialization, Empty) {}
 2465   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 2468     return K == Decl::ClassScopeFunctionSpecialization;
 2738   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 2883   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 3041   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 3071   static bool classof(const Decl *D) { return classofKind(D->getKind()); }
 3087 inline TemplateDecl *getAsTypeTemplateDecl(Decl *D) {
tools/clang/include/clang/AST/Expr.h
  461   Decl *getReferencedDeclOfCallee();
  462   const Decl *getReferencedDeclOfCallee() const {
 1946   static std::string ComputeName(IdentKind IK, const Decl *CurrentDecl);
 2650   Decl *getCalleeDecl() { return getCallee()->getReferencedDeclOfCallee(); }
 2651   const Decl *getCalleeDecl() const {
tools/clang/include/clang/AST/ExternalASTMerger.h
  122   Decl *FindOriginalDecl(Decl *D);
  122   Decl *FindOriginalDecl(Decl *D);
  149                            llvm::function_ref<bool(Decl::Kind)> IsKindWeWant,
  150                            SmallVectorImpl<Decl *> &Result) override;
tools/clang/include/clang/AST/ExternalASTSource.h
  105   virtual Decl *GetExternalDecl(uint32_t ID);
  167   virtual bool DeclIsFromPCHWithObjectFile(const Decl *D) { return false; }
  199   virtual ExtKind hasExternalDefinitions(const Decl *D);
  210                            llvm::function_ref<bool(Decl::Kind)> IsKindWeWant,
  211                            SmallVectorImpl<Decl *> &Result);
  216                                 SmallVectorImpl<Decl *> &Result) {
  225                                    SmallVectorImpl<Decl *> &Decls);
  231   virtual void CompleteRedeclChain(const Decl *D);
  359   explicit LazyOffsetPtr(T *Ptr) : Ptr(reinterpret_cast<uint64_t>(Ptr)) {}
  400   T* get(ExternalASTSource *Source) const {
  601     LazyOffsetPtr<Decl, uint32_t, &ExternalASTSource::GetExternalDecl>;
tools/clang/include/clang/AST/GlobalDecl.h
   41   llvm::PointerIntPair<const Decl *, 2> Value;
   44   void Init(const Decl *D) {
   77   const Decl *getDecl() const { return Value.getPointer(); }
  117   GlobalDecl getWithDecl(const Decl *D) {
tools/clang/include/clang/AST/JSONNodeDumper.h
  157   llvm::json::Object createBareDeclRef(const Decl *D);
  158   void writeBareDeclRef(const Decl *D);
  177   void addPreviousDeclaration(const Decl *D);
  192   void Visit(const Decl *D);
  196              const Decl *From = nullptr, StringRef Label = {});
tools/clang/include/clang/AST/LambdaCapture.h
   49   llvm::PointerIntPair<Decl*, 3> DeclAndBits;
tools/clang/include/clang/AST/LexicallyOrderedRecursiveASTVisitor.h
   84       Decl *Child = *I;
  100         Decl *Sibling = *I;
  150     for (Decl *D : LexicallyNestedDeclarations) {
  158   llvm::SmallVector<Decl *, 8> LexicallyNestedDeclarations;
tools/clang/include/clang/AST/Mangle.h
  256   bool writeName(const Decl *D, raw_ostream &OS);
  259   std::string getName(const Decl *D);
  263   std::vector<std::string> getAllManglings(const Decl *D);
tools/clang/include/clang/AST/ODRHash.h
   69   void AddSubDecl(const Decl *D);
   78   void AddDecl(const Decl *D);
   92   static bool isWhitelistedDecl(const Decl* D, const DeclContext *Parent);
tools/clang/include/clang/AST/PrettyDeclStackTrace.h
   32   Decl *TheDecl;
   37   PrettyDeclStackTraceEntry(ASTContext &Ctx, Decl *D, SourceLocation Loc,
tools/clang/include/clang/AST/RawCommentList.h
  142                                const Preprocessor *PP, const Decl *D) const;
tools/clang/include/clang/AST/RecursiveASTVisitor.h
  182     for (Decl *D : AST.getTraversalScope())
  233   bool TraverseDecl(Decl *D);
  492   bool WalkUpFromDecl(Decl *D) { return getDerived().VisitDecl(D); }
  493   bool VisitDecl(Decl *D) { return true; }
  503   bool canIgnoreChildDeclWhileTraversingDeclContext(const Decl *Child);
  707 bool RecursiveASTVisitor<Derived>::TraverseDecl(Decl *D) {
 1372     const Decl *Child) {
 1388   for (auto *Child : DC->decls()) {
tools/clang/include/clang/AST/Redeclarable.h
   90         LazyGenerationalUpdatePtr<const Decl *, Decl *,
   90         LazyGenerationalUpdatePtr<const Decl *, Decl *,
   98     using Previous = Decl *;
  158     Decl *getLatestNotUpdated() const {
  306 Decl *getPrimaryMergedDecl(Decl *D);
  306 Decl *getPrimaryMergedDecl(Decl *D);
  350   CanonicalDeclPtr(decl_type *Ptr)
  355   operator decl_type *() { return Ptr; }
  356   operator const decl_type *() const { return Ptr; }
  358   decl_type *operator->() { return Ptr; }
  359   const decl_type *operator->() const { return Ptr; }
  361   decl_type &operator*() { return *Ptr; }
  362   const decl_type &operator*() const { return *Ptr; }
  374   decl_type *Ptr = nullptr;
  383   using CanonicalDeclPtr = clang::CanonicalDeclPtr<decl_type>;
  384   using BaseInfo = DenseMapInfo<decl_type *>;
tools/clang/include/clang/AST/Stmt.h
 1228   const Decl *getSingleDecl() const { return DG.getSingleDecl(); }
 1229   Decl *getSingleDecl() { return DG.getSingleDecl(); }
tools/clang/include/clang/AST/StmtIterator.h
   38     Decl **DGI;
   41   Decl **DGE;
   45   StmtIteratorBase(Decl **dgi, Decl **dge);
   45   StmtIteratorBase(Decl **dgi, Decl **dge);
   70   bool HandleDecl(Decl* D);
   87   StmtIteratorImpl(Decl **dgi, Decl **dge) : StmtIteratorBase(dgi, dge) {}
   87   StmtIteratorImpl(Decl **dgi, Decl **dge) : StmtIteratorBase(dgi, dge) {}
  127   StmtIterator(Decl** dgi, Decl** dge)
  127   StmtIterator(Decl** dgi, Decl** dge)
tools/clang/include/clang/AST/TextNodeDumper.h
  161              const Decl *From = nullptr, StringRef Label = {});
  169   void Visit(const Decl *D);
  184   void dumpBareDeclRef(const Decl *D);
  188   void dumpDeclRef(const Decl *D, StringRef Label = {});
tools/clang/include/clang/ASTMatchers/ASTMatchFinder.h
  184   template <typename T> void match(const T &Node, ASTContext &Context) {
  266 const NodeT *
  269     if (const NodeT *Node = N.getNodeAs<NodeT>(BoundTo))
  269     if (const NodeT *Node = N.getNodeAs<NodeT>(BoundTo))
tools/clang/include/clang/ASTMatchers/ASTMatchers.h
  110   const T *getNodeAs(StringRef ID) const {
  111     return MyBoundNodes.getNodeAs<T>(ID);
  137 using DeclarationMatcher = internal::Matcher<Decl>;
  173 extern const internal::VariadicDynCastAllOfMatcher<Decl, TranslationUnitDecl>
  185 extern const internal::VariadicDynCastAllOfMatcher<Decl, TypedefDecl>
  197 extern const internal::VariadicDynCastAllOfMatcher<Decl, TypedefNameDecl>
  209 extern const internal::VariadicDynCastAllOfMatcher<Decl, TypeAliasDecl>
  219 extern const internal::VariadicDynCastAllOfMatcher<Decl, TypeAliasTemplateDecl>
  310 extern const internal::VariadicAllOfMatcher<Decl> decl;
  320 extern const internal::VariadicDynCastAllOfMatcher<Decl, LinkageSpecDecl>
  334 extern const internal::VariadicDynCastAllOfMatcher<Decl, NamedDecl> namedDecl;
  345 extern const internal::VariadicDynCastAllOfMatcher<Decl, LabelDecl> labelDecl;
  356 extern const internal::VariadicDynCastAllOfMatcher<Decl, NamespaceDecl>
  368 extern const internal::VariadicDynCastAllOfMatcher<Decl, NamespaceAliasDecl>
  380 extern const internal::VariadicDynCastAllOfMatcher<Decl, RecordDecl> recordDecl;
  389 extern const internal::VariadicDynCastAllOfMatcher<Decl, CXXRecordDecl>
  398 extern const internal::VariadicDynCastAllOfMatcher<Decl, ClassTemplateDecl>
  412     Decl, ClassTemplateSpecializationDecl>
  431     Decl, ClassTemplatePartialSpecializationDecl>
  443 extern const internal::VariadicDynCastAllOfMatcher<Decl, DeclaratorDecl>
  454 extern const internal::VariadicDynCastAllOfMatcher<Decl, ParmVarDecl>
  468 extern const internal::VariadicDynCastAllOfMatcher<Decl, AccessSpecDecl>
  513 extern const internal::VariadicDynCastAllOfMatcher<Decl,
  525 extern const internal::VariadicDynCastAllOfMatcher<Decl, TemplateTypeParmDecl>
 1065 extern const internal::VariadicDynCastAllOfMatcher<Decl, ValueDecl> valueDecl;
 1078 extern const internal::VariadicDynCastAllOfMatcher<Decl, CXXConstructorDecl>
 1090 extern const internal::VariadicDynCastAllOfMatcher<Decl, CXXDestructorDecl>
 1101 extern const internal::VariadicDynCastAllOfMatcher<Decl, EnumDecl> enumDecl;
 1111 extern const internal::VariadicDynCastAllOfMatcher<Decl, EnumConstantDecl>
 1120 extern const internal::VariadicDynCastAllOfMatcher<Decl, CXXMethodDecl>
 1129 extern const internal::VariadicDynCastAllOfMatcher<Decl, CXXConversionDecl>
 1140 extern const internal::VariadicDynCastAllOfMatcher<Decl, CXXDeductionGuideDecl>
 1152 extern const internal::VariadicDynCastAllOfMatcher<Decl, VarDecl> varDecl;
 1162 extern const internal::VariadicDynCastAllOfMatcher<Decl, FieldDecl> fieldDecl;
 1172 extern const internal::VariadicDynCastAllOfMatcher<Decl, IndirectFieldDecl>
 1181 extern const internal::VariadicDynCastAllOfMatcher<Decl, FunctionDecl>
 1190 extern const internal::VariadicDynCastAllOfMatcher<Decl, FunctionTemplateDecl>
 1201 extern const internal::VariadicDynCastAllOfMatcher<Decl, FriendDecl> friendDecl;
 1333 extern const internal::VariadicDynCastAllOfMatcher<Decl, ObjCInterfaceDecl>
 1343 extern const internal::VariadicDynCastAllOfMatcher<Decl, ObjCImplementationDecl>
 1353 extern const internal::VariadicDynCastAllOfMatcher<Decl, ObjCProtocolDecl>
 1363 extern const internal::VariadicDynCastAllOfMatcher<Decl, ObjCCategoryDecl>
 1373 extern const internal::VariadicDynCastAllOfMatcher<Decl, ObjCCategoryImplDecl>
 1388 extern const internal::VariadicDynCastAllOfMatcher<Decl, ObjCMethodDecl>
 1401 extern const internal::VariadicDynCastAllOfMatcher<Decl, BlockDecl>
 1413 extern const internal::VariadicDynCastAllOfMatcher<Decl, ObjCIvarDecl>
 1424 extern const internal::VariadicDynCastAllOfMatcher<Decl, ObjCPropertyDecl>
 1565 extern const internal::VariadicDynCastAllOfMatcher<Decl, UsingDecl> usingDecl;
 1576 extern const internal::VariadicDynCastAllOfMatcher<Decl, UsingDirectiveDecl>
 1607 extern const internal::VariadicDynCastAllOfMatcher<Decl,
 1626 extern const internal::VariadicDynCastAllOfMatcher<Decl,
 2249 extern const internal::VariadicDynCastAllOfMatcher<Decl, StaticAssertDecl>
 2886 internal::Matcher<T> findAll(const internal::Matcher<T> &Matcher) {
 2886 internal::Matcher<T> findAll(const internal::Matcher<T> &Matcher) {
 3486   const Decl *DeclNode = Node.getDecl();
 3545     const Decl *FoundDecl = Node.getSingleDecl();
 5989   return InnerMatcher.matches(*Decl::castFromDeclContext(DC), Finder, Builder);
tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
  160   const T *getNodeAs(StringRef ID) const {
  165     return It->second.get<T>();
  302   virtual bool matches(const T &Node,
  309     return matches(DynNode.getUnchecked<T>(), Finder, Builder);
  345   DynTypedMatcher(MatcherInterface<T> *Implementation)
  346       : SupportedKind(ast_type_traits::ASTNodeKind::getFromNodeKind<T>()),
  436     return canConvertTo(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  445   template <typename T> Matcher<T> convertTo() const {
  447     return unconditionalConvertTo<T>();
  479 class WrapperMatcherInterface : public MatcherInterface<T> {
  499   explicit Matcher(MatcherInterface<T> *Implementation)
  506   Matcher(const Matcher<From> &Other,
  507           typename std::enable_if<std::is_base_of<From, T>::value &&
  508                                !std::is_same<From, T>::value>::type * = nullptr)
  520             std::is_same<T, QualType>::value &&
  528   Matcher<To> dynCastTo() const {
  529     static_assert(std::is_base_of<To, T>::value, "Invalid dynCast call.");
  534   bool matches(const T &Node,
  581     return Other.dynCastTo(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  596 inline Matcher<T> makeMatcher(MatcherInterface<T> *Implementation) {
  596 inline Matcher<T> makeMatcher(MatcherInterface<T> *Implementation) {
  752   static_assert(std::is_same<DeclMatcherT, Matcher<Decl>>::value,
  756   explicit HasDeclarationMatcher(const Matcher<Decl> &InnerMatcher)
  909   bool matchesDecl(const Decl *Node, ASTMatchFinder *Finder,
  922       std::is_same<T, Decl>::value ||
  922       std::is_same<T, Decl>::value ||
  923       std::is_same<T, Stmt>::value ||
  924       std::is_same<T, QualType>::value ||
  925       std::is_same<T, Type>::value ||
  926       std::is_same<T, TypeLoc>::value ||
  927       std::is_same<T, NestedNameSpecifier>::value ||
  928       std::is_same<T, NestedNameSpecifierLoc>::value ||
  929       std::is_same<T, CXXCtorInitializer>::value;
  994   bool matchesChildOf(const T &Node, const DynTypedMatcher &Matcher,
  997     static_assert(std::is_base_of<Decl, T>::value ||
  997     static_assert(std::is_base_of<Decl, T>::value ||
  998                   std::is_base_of<Stmt, T>::value ||
  999                   std::is_base_of<NestedNameSpecifier, T>::value ||
 1000                   std::is_base_of<NestedNameSpecifierLoc, T>::value ||
 1001                   std::is_base_of<TypeLoc, T>::value ||
 1002                   std::is_base_of<QualType, T>::value,
 1009   bool matchesDescendantOf(const T &Node,
 1013     static_assert(std::is_base_of<Decl, T>::value ||
 1013     static_assert(std::is_base_of<Decl, T>::value ||
 1014                   std::is_base_of<Stmt, T>::value ||
 1015                   std::is_base_of<NestedNameSpecifier, T>::value ||
 1016                   std::is_base_of<NestedNameSpecifierLoc, T>::value ||
 1017                   std::is_base_of<TypeLoc, T>::value ||
 1018                   std::is_base_of<QualType, T>::value,
 1026   bool matchesAncestorOf(const T &Node,
 1030     static_assert(std::is_base_of<Decl, T>::value ||
 1030     static_assert(std::is_base_of<Decl, T>::value ||
 1031                       std::is_base_of<NestedNameSpecifierLoc, T>::value ||
 1032                       std::is_base_of<Stmt, T>::value ||
 1033                       std::is_base_of<TypeLoc, T>::value,
 1067   using head = T1;
 1073   using tail = TypeList<Ts...>;
 1084       std::is_base_of<typename AnyTypeList::head, T>::value ||
 1085       TypeListContainsSuperOf<typename AnyTypeList::tail, T>::value;
 1096     TypeList<Decl, Stmt, NestedNameSpecifier, NestedNameSpecifierLoc, QualType,
 1111     TypeList<Decl, Stmt, NestedNameSpecifier, NestedNameSpecifierLoc, TypeLoc,
 1141     explicit Adaptor(const Matcher<T> &InnerMatcher)
 1146     template <typename To> operator Matcher<To>() const {
 1151     const Matcher<T> InnerMatcher;
 1155   static Adaptor<T> create(const Matcher<T> &InnerMatcher) {
 1155   static Adaptor<T> create(const Matcher<T> &InnerMatcher) {
 1160   Adaptor<T> operator()(const Matcher<T> &InnerMatcher) const {
 1160   Adaptor<T> operator()(const Matcher<T> &InnerMatcher) const {
 1184   operator Matcher<T>() const {
 1185     static_assert(TypeListContainsSuperOf<ReturnTypes, T>::value,
 1202   operator Matcher<T>() const {
 1203     static_assert(TypeListContainsSuperOf<ReturnTypes, T>::value,
 1243   operator Matcher<T>() const {
 1245                ast_type_traits::ASTNodeKind::getFromNodeKind<T>())
 1246         .template unconditionalConvertTo<T>();
 1255 class BindableMatcher : public Matcher<T> {
 1257   explicit BindableMatcher(const Matcher<T> &M) : Matcher<T>(M) {}
 1258   explicit BindableMatcher(MatcherInterface<T> *Implementation)
 1265   Matcher<T> bind(StringRef ID) const {
 1268         ->template unconditionalConvertTo<T>();
 1285 class HasMatcher : public WrapperMatcherInterface<T> {
 1287   explicit HasMatcher(const Matcher<ChildT> &ChildMatcher)
 1290   bool matches(const T &Node, ASTMatchFinder *Finder,
 1304 class ForEachMatcher : public WrapperMatcherInterface<T> {
 1305   static_assert(IsBaseType<ChildT>::value,
 1309    explicit ForEachMatcher(const Matcher<ChildT> &ChildMatcher)
 1312   bool matches(const T& Node, ASTMatchFinder* Finder,
 1335   template <typename T> operator Matcher<T>() const {
 1337                Op, ast_type_traits::ASTNodeKind::getFromNodeKind<T>(),
 1338                getMatchers<T>(std::index_sequence_for<Ps...>()))
 1339         .template unconditionalConvertTo<T>();
 1370 inline Matcher<T> DynTypedMatcher::unconditionalConvertTo() const {
 1376 BindableMatcher<T> makeAllOfComposite(
 1377     ArrayRef<const Matcher<T> *> InnerMatchers) {
 1388   using PI = llvm::pointee_iterator<const Matcher<T> *const *>;
 1395           ast_type_traits::ASTNodeKind::getFromNodeKind<T>(),
 1397           .template unconditionalConvertTo<T>());
 1407 BindableMatcher<T> makeDynCastAllOfComposite(
 1410       makeAllOfComposite(InnerMatchers).template dynCastTo<T>());
 1418 class HasDescendantMatcher : public WrapperMatcherInterface<T> {
 1419   static_assert(IsBaseType<DescendantT>::value,
 1423   explicit HasDescendantMatcher(const Matcher<DescendantT> &DescendantMatcher)
 1426   bool matches(const T &Node, ASTMatchFinder *Finder,
 1438 class HasParentMatcher : public WrapperMatcherInterface<T> {
 1439   static_assert(IsBaseType<ParentT>::value,
 1443   explicit HasParentMatcher(const Matcher<ParentT> &ParentMatcher)
 1446   bool matches(const T &Node, ASTMatchFinder *Finder,
 1458 class HasAncestorMatcher : public WrapperMatcherInterface<T> {
 1459   static_assert(IsBaseType<AncestorT>::value,
 1463   explicit HasAncestorMatcher(const Matcher<AncestorT> &AncestorMatcher)
 1466   bool matches(const T &Node, ASTMatchFinder *Finder,
 1480 class ForEachDescendantMatcher : public WrapperMatcherInterface<T> {
 1481   static_assert(IsBaseType<DescendantT>::value,
 1486       const Matcher<DescendantT> &DescendantMatcher)
 1489   bool matches(const T &Node, ASTMatchFinder *Finder,
 1557     : public VariadicFunction<BindableMatcher<SourceT>, Matcher<TargetT>,
 1558                               makeDynCastAllOfComposite<SourceT, TargetT>> {
 1575     : public VariadicFunction<BindableMatcher<T>, Matcher<T>,
 1575     : public VariadicFunction<BindableMatcher<T>, Matcher<T>,
 1576                               makeAllOfComposite<T>> {
tools/clang/include/clang/ASTMatchers/Dynamic/VariantValue.h
  199   ast_matchers::internal::Matcher<T> getTypedMatcher() const {
  202         ->template convertTo<T>();
  227       : MatcherOps(ast_type_traits::ASTNodeKind::getFromNodeKind<T>()) {}
  228   typedef ast_matchers::internal::Matcher<T> MatcherT;
  232     return DynTypedMatcher(Matcher.convertTo<T>());
tools/clang/include/clang/Analysis/Analyses/ExprMutationAnalyzer.h
   29   bool isMutated(const Decl *Dec) { return findMutation(Dec) != nullptr; }
   31   const Stmt *findMutation(const Decl *Dec);
   36   bool isPointeeMutated(const Decl *Dec) {
   40   const Stmt *findPointeeMutation(const Decl *Dec);
   49   const Stmt *tryEachDeclRef(const Decl *Dec, MutationFinder Finder);
tools/clang/include/clang/Analysis/AnalysisDeclContext.h
   74   const Decl * const D;
   95                   const Decl *D);
   98                   const Decl *D,
  104   const Decl *getDecl() const { return D; }
  208   static bool isInStdNamespace(const Decl *D);
  251   const Decl *getDecl() const { return getAnalysisDeclContext()->getDecl(); }
  441       llvm::DenseMap<const Decl *, std::unique_ptr<AnalysisDeclContext>>;
  475   AnalysisDeclContext *getContext(const Decl *D);
  497   const StackFrameContext *getStackFrame(const Decl *D) {
  503   StackFrameContext const *getStackFrame(const Decl *D,
tools/clang/include/clang/Analysis/AnyCall.h
   62   const Decl *D = nullptr;
  125   static Optional<AnyCall> forDecl(const Decl *D) {
  187   const Decl *getDecl() const {
tools/clang/include/clang/Analysis/BodyFarm.h
   45   typedef llvm::DenseMap<const Decl *, Optional<Stmt *>> BodyMap;
tools/clang/include/clang/Analysis/CFG.h
 1273   static std::unique_ptr<CFG> buildCFG(const Decl *D, Stmt *AST, ASTContext *C,
tools/clang/include/clang/Analysis/CallGraph.h
   45       llvm::DenseMap<const Decl *, std::unique_ptr<CallGraphNode>>;
   61   void addToCallGraph(Decl *D) {
   66   static bool includeInGraph(const Decl *D);
   69   CallGraphNode *getNode(const Decl *) const;
   73   CallGraphNode *getOrInsertNode(Decl *);
  138   void addNodeForDecl(Decl *D, bool IsGlobal);
  141   CallGraphNode *allocateNewNode(Decl *);
  150   Decl *FD;
  156   CallGraphNode(Decl *D) : FD(D) {}
  174   Decl *getDecl() const { return FD; }
tools/clang/include/clang/Analysis/CloneDetection.h
   40   const Decl *D;
   61   StmtSequence(const CompoundStmt *Stmt, const Decl *D, unsigned StartIndex,
   68   StmtSequence(const Stmt *Stmt, const Decl *D);
  113   const Decl *getContainingDecl() const {
  174   void analyzeCodeBody(const Decl *D);
tools/clang/include/clang/Analysis/PathDiagnostic.h
  162   const Decl *D = nullptr;
  193   PathDiagnosticLocation(const Decl *d, const SourceManager &sm)
  210   static PathDiagnosticLocation create(const Decl *D,
  216   static PathDiagnosticLocation createBegin(const Decl *D,
  223   createBegin(const Decl *D, const SourceManager &SM,
  316   const Decl *asDecl() const { assert(isValid()); return D; }
  527   const Decl *Caller;
  528   const Decl *Callee = nullptr;
  542   PathDiagnosticCallPiece(const Decl *callerD,
  546   PathDiagnosticCallPiece(PathPieces &oldPath, const Decl *caller)
  558   const Decl *getCaller() const { return Caller; }
  560   const Decl *getCallee() const { return Callee; }
  585                                             const Decl *caller);
  729   const Decl *DeclWithIssue;
  745   const Decl *UniqueingDecl;
  752   PathDiagnostic(StringRef CheckerName, const Decl *DeclWithIssue,
  755                  const Decl *DeclToUnique,
  822   const Decl *getDeclWithIssue() const { return DeclWithIssue; }
  824   void setDeclWithIssue(const Decl *D) {
  842   const Decl *getUniqueingDecl() const {
tools/clang/include/clang/Analysis/ProgramPoint.h
  561   ImplicitCallPoint(const Decl *D, SourceLocation Loc, Kind K,
  565   const Decl *getDecl() const { return static_cast<const Decl *>(getData2()); }
  585   PreImplicitCall(const Decl *D, SourceLocation Loc, const LocationContext *L,
  602   PostImplicitCall(const Decl *D, SourceLocation Loc, const LocationContext *L,
tools/clang/include/clang/Analysis/RetainSummaryManager.h
  658   bool isTrustedReferenceCountImplementation(const Decl *FD);
  690                                                   const Decl *D);
  726   Optional<ObjKind> hasAnyEnabledAttrOf(const Decl *D, QualType QT);
  729   Optional<ObjKind> hasAnyEnabledAttrOf(const Decl *D, QualType QT);
tools/clang/include/clang/CodeGen/ModuleBuilder.h
   75   const Decl *GetDeclForMangledName(llvm::StringRef MangledName);
tools/clang/include/clang/Frontend/ASTUnit.h
  171   std::vector<Decl*> TopLevelDecls;
  174   using LocDeclsTy = SmallVector<std::pair<unsigned, Decl *>, 64>;
  500   using top_level_iterator = std::vector<Decl *>::iterator;
  527   void addTopLevelDecl(Decl *D) {
  532   void addFileLevelDecl(Decl *D);
  538                            SmallVectorImpl<Decl *> &Decls);
  636   using DeclVisitorFn = bool (*)(void *context, const Decl *D);
tools/clang/include/clang/Frontend/MultiplexConsumer.h
   38   void DeclRead(serialization::DeclID ID, const Decl *D) override;
   73   bool shouldSkipFunctionBody(Decl *D) override;
tools/clang/include/clang/Index/DeclOccurrence.h
   25   const Decl *Dcl;
   28   DeclOccurrence(SymbolRoleSet R, unsigned Offset, const Decl *D,
tools/clang/include/clang/Index/IndexDataConsumer.h
   30     const Decl *OrigD;
   31     const Decl *Parent;
   42   virtual bool handleDeclOccurence(const Decl *D, SymbolRoleSet Roles,
tools/clang/include/clang/Index/IndexSymbol.h
  132   const Decl *RelatedSymbol;
  134   SymbolRelation(SymbolRoleSet Roles, const Decl *Sym)
  145 SymbolInfo getSymbolInfo(const Decl *D);
  149 bool isFunctionLocalSymbol(const Decl *D);
  158 bool printSymbolName(const Decl *D, const LangOptions &LO, raw_ostream &OS);
tools/clang/include/clang/Index/IndexingAction.h
   39     std::function<bool(const Decl *)> ShouldSkipFunctionBody);
   60                         ArrayRef<const Decl *> Decls,
tools/clang/include/clang/Index/USRGeneration.h
   32 bool generateUSRForDecl(const Decl *D, SmallVectorImpl<char> &Buf);
tools/clang/include/clang/Parse/Parser.h
  415   Decl  *getObjCDeclContext() const { return Actions.getObjCDeclContext(); }
  947     Decl *DC;
 1178     SmallVector<Decl*, 2> Decls;
 1186     void addDecl(Decl *D) { Decls.push_back(D); }
 1205     Decl *D;
 1213     explicit LexedMethod(Parser* P, Decl *MD)
 1224     explicit LateParsedDefaultArgument(Decl *P,
 1229     Decl *Param;
 1243     explicit LateParsedMethodDeclaration(Parser *P, Decl *M)
 1252     Decl *Method;
 1275     LateParsedMemberInitializer(Parser *P, Decl *FD)
 1283     Decl *Field;
 1302     ParsingClass(Decl *TagOrTemplate, bool TopLevelClass, bool IsInterface)
 1319     Decl *TagOrTemplate;
 1344     ParsingClassDefinition(Parser &P, Decl *TagOrTemplate, bool TopLevelClass,
 1420   PushParsingClass(Decl *TagOrTemplate, bool TopLevelClass, bool IsInterface);
 1435   void ParseCXXNonStaticMemberInitializer(Decl *VarD);
 1437   void ParseLexedAttributeList(LateParsedAttrList &LAs, Decl *D,
 1498   Decl *ParseFunctionDefinition(ParsingDeclarator &D,
 1511   Decl *ParseObjCAtInterfaceDeclaration(SourceLocation AtLoc,
 1520   void HelperActionsForIvarDeclarations(Decl *interfaceDecl, SourceLocation atLoc,
 1522                                         SmallVectorImpl<Decl *> &AllIvarDecls,
 1524   void ParseObjCClassInstanceVariables(Decl *interfaceDecl,
 1527   bool ParseObjCProtocolReferences(SmallVectorImpl<Decl *> &P,
 1544          SmallVectorImpl<Decl *> &protocols,
 1558          SmallVectorImpl<Decl *> &protocols,
 1575                                   Decl *CDecl);
 1581     Decl *Dcl;
 1586     ObjCImplParsingDataRAII(Parser &parser, Decl *D)
 1600   void StashAwayMethodOrFunctionBodyTokens(Decl *MDecl);
 1605   Decl *ParseObjCAtAliasDeclaration(SourceLocation atLoc);
 1606   Decl *ParseObjCPropertySynthesize(SourceLocation atLoc);
 1607   Decl *ParseObjCPropertyDynamic(SourceLocation atLoc);
 1623   Decl *ParseObjCMethodPrototype(
 1626   Decl *ParseObjCMethodDecl(SourceLocation mLoc, tok::TokenKind mType,
 1631   Decl *ParseObjCMethodDefinition();
 2136   Decl *ParseDeclarationAfterDeclarator(Declarator &D,
 2139   Decl *ParseDeclarationAfterDeclaratorAndAttributes(
 2143   Decl *ParseFunctionStatementBody(Decl *Decl, ParseScope &BodyScope);
 2143   Decl *ParseFunctionStatementBody(Decl *Decl, ParseScope &BodyScope);
 2144   Decl *ParseFunctionTryBlock(Decl *Decl, ParseScope &BodyScope);
 2144   Decl *ParseFunctionTryBlock(Decl *Decl, ParseScope &BodyScope);
 2178   void ParseEnumBody(SourceLocation StartLoc, Decl *TagDecl);
 2180                             Decl *TagDecl);
 2382                            Decl **OwnedType = nullptr,
 2750   Decl *ParseLinkage(ParsingDeclSpec &DS, DeclaratorContext Context);
 2751   Decl *ParseExportDeclaration();
 2755   Decl *ParseUsingDirective(DeclaratorContext Context,
 2779   Decl *ParseAliasDeclarationAfterDeclarator(
 2782       ParsedAttributes &Attrs, Decl **OwnedType = nullptr);
 2784   Decl *ParseStaticAssertDeclaration(SourceLocation &DeclEnd);
 2785   Decl *ParseNamespaceAlias(SourceLocation NamespaceLoc,
 2800                                   Decl *TagDecl);
 2805                                    Decl *TagDecl);
 2806   ExprResult ParseCXXMemberInitializer(Decl *D, bool IsFunction,
 2820       DeclSpec::TST TagType, Decl *Tag);
 2821   void ParseConstructorInitializer(Decl *ConstructorDecl);
 2822   MemInitResult ParseMemInitializer(Decl *ConstructorDecl);
 2824                                       Decl *ThisDecl);
 2830   void ParseBaseClause(Decl *ClassDecl);
 2831   BaseResult ParseBaseSpecifier(Decl *ClassDecl);
 2872       Decl *TagDecl = nullptr);
 3000   Decl *ParseDeclarationStartingWithTemplate(DeclaratorContext Context,
 3004   Decl *ParseTemplateDeclarationOrSpecialization(DeclaratorContext Context,
 3008   Decl *ParseSingleDeclarationAfterTemplate(
 3049   Decl *ParseExplicitInstantiation(DeclaratorContext Context,
 3056   Decl *
 3063   Decl *ParseModuleImport(SourceLocation AtLoc);
tools/clang/include/clang/Parse/RAIIObjectsForParser.h
  149     void complete(Decl *D) {
  166     void pop(Decl *D) {
  190     void complete(Decl *D) {
  221     void complete(Decl *D) {
  243     void complete(Decl *D) {
tools/clang/include/clang/Sema/AnalysisBasedWarnings.h
   93                      const Decl *D, QualType BlockType);
tools/clang/include/clang/Sema/CodeCompleteConsumer.h
  183 CXCursorKind getCursorKindForDecl(const Decl *D);
tools/clang/include/clang/Sema/DeclSpec.h
  370     Decl *DeclRep;
  486   Decl *getRepAsDecl() const {
  659                        unsigned &DiagID, Decl *Rep, bool Owned,
  667                        unsigned &DiagID, Decl *Rep, bool Owned,
  688   void UpdateDeclRep(Decl *Rep) {
 1237     Decl *Param;
 1248               Decl *param,
tools/clang/include/clang/Sema/IdentifierResolver.h
  155   bool isDeclInScope(Decl *D, DeclContext *Ctx, Scope *S = nullptr,
tools/clang/include/clang/Sema/Lookup.h
  688       IDNS |= Decl::IDNS_LocalExtern;
  690       IDNS &= ~Decl::IDNS_LocalExtern;
tools/clang/include/clang/Sema/MultiplexExternalSemaSource.h
   67   Decl *GetExternalDecl(uint32_t ID) override;
   71   void CompleteRedeclChain(const Decl *D) override;
   92   ExtKind hasExternalDefinitions(const Decl *D) override;
  110                            llvm::function_ref<bool(Decl::Kind)> IsKindWeWant,
  111                            SmallVectorImpl<Decl *> &Result) override;
  117                            SmallVectorImpl<Decl *> &Decls) override;
  154   bool DeclIsFromPCHWithObjectFile(const Decl *D) override;
tools/clang/include/clang/Sema/Overload.h
 1018     bool isNewCandidate(Decl *F, OverloadCandidateParamOrder PO =
tools/clang/include/clang/Sema/Ownership.h
  269   using DeclResult = ActionResult<Decl *>;
tools/clang/include/clang/Sema/ParsedAttr.h
  501   bool diagnoseAppertainsTo(class Sema &S, const Decl *D) const;
  502   bool appliesToDecl(const Decl *D, attr::SubjectMatchRule MatchRule) const;
tools/clang/include/clang/Sema/Scope.h
  193   using DeclSetTy = llvm::SmallPtrSet<Decl *, 32>;
  289   void AddDecl(Decl *D) {
  293   void RemoveDecl(Decl *D) {
  323   bool isDeclScope(Decl *D) {
tools/clang/include/clang/Sema/Sema.h
  291   void enterVariableInit(SourceLocation Tok, Decl *D);
  580   const Decl *PragmaAttributeCurrentTargetDecl;
  654   llvm::SmallPtrSet<const Decl*, 4> ParsingInitForAutoVars;
  845       Ctx.Entity = cast<Decl>(S.CurContext);
  881   SmallVector<Decl*,2> WeakTopLevelDecl;
 1051     Decl *ManglingContextDecl;
 1077                                       Decl *ManglingContextDecl,
 1104   std::tuple<MangleNumberingContext *, Decl *>
 1467                        const Decl *D = nullptr,
 1509   SmallVectorImpl<Decl *> &WeakTopLevelDecls() { return WeakTopLevelDecl; }
 1718   Module *getOwningModule(Decl *Entity) { return Entity->getOwningModule(); }
 1745   bool hasStructuralCompatLayout(Decl *D, Decl *Suggested);
 1745   bool hasStructuralCompatLayout(Decl *D, Decl *Suggested);
 1846   DeclGroupPtrTy ConvertDeclToDeclGroup(Decl *Ptr, Decl *OwnedType = nullptr);
 1846   DeclGroupPtrTy ConvertDeclToDeclGroup(Decl *Ptr, Decl *OwnedType = nullptr);
 2099   Decl *ActOnDeclarator(Scope *S, Declarator &D);
 2193   bool shouldLinkDependentDeclWithPrevious(Decl *D, Decl *OldDecl);
 2193   bool shouldLinkDependentDeclWithPrevious(Decl *D, Decl *OldDecl);
 2201   Decl *ActOnParamDeclarator(Scope *S, Declarator &D);
 2209   void ActOnParamDefaultArgument(Decl *param,
 2212   void ActOnParamUnparsedDefaultArgument(Decl *param,
 2215   void ActOnParamDefaultArgumentError(Decl *param, SourceLocation EqualLoc);
 2261   void AddInitializerToDecl(Decl *dcl, Expr *init, bool DirectInit);
 2262   void ActOnUninitializedDecl(Decl *dcl);
 2263   void ActOnInitializerError(Decl *Dcl);
 2265   void ActOnPureSpecifier(Decl *D, SourceLocation PureSpecLoc);
 2266   void ActOnCXXForRangeDecl(Decl *D);
 2271   void SetDeclDeleted(Decl *dcl, SourceLocation DelLoc);
 2272   void SetDeclDefaulted(Decl *dcl, SourceLocation DefaultLoc);
 2274   void FinalizeDeclaration(Decl *D);
 2276                                          ArrayRef<Decl *> Group);
 2277   DeclGroupPtrTy BuildDeclaratorGroup(MutableArrayRef<Decl *> Group);
 2281   void ActOnDocumentableDecl(Decl *D);
 2282   void ActOnDocumentableDecls(ArrayRef<Decl *> Group);
 2289   Decl *ActOnStartOfFunctionDef(Scope *S, Declarator &D,
 2292   Decl *ActOnStartOfFunctionDef(Scope *S, Decl *D,
 2292   Decl *ActOnStartOfFunctionDef(Scope *S, Decl *D,
 2294   void ActOnStartOfObjCMethodDef(Scope *S, Decl *D);
 2295   bool isObjCMethodDecl(Decl *D) {
 2316   bool canSkipFunctionBody(Decl *D);
 2319   Decl *ActOnFinishFunctionBody(Decl *Decl, Stmt *Body);
 2319   Decl *ActOnFinishFunctionBody(Decl *Decl, Stmt *Body);
 2320   Decl *ActOnFinishFunctionBody(Decl *Decl, Stmt *Body, bool IsInstantiation);
 2320   Decl *ActOnFinishFunctionBody(Decl *Decl, Stmt *Body, bool IsInstantiation);
 2321   Decl *ActOnSkippedFunctionBody(Decl *Decl);
 2321   Decl *ActOnSkippedFunctionBody(Decl *Decl);
 2326   void ActOnFinishDelayedAttribute(Scope *S, Decl *D, ParsedAttributes &Attrs);
 2340   Decl *ActOnFileScopeAsmDecl(Expr *expr,
 2345   Decl *ActOnEmptyDeclaration(Scope *S, const ParsedAttributesView &AttrList,
 2423   Decl *ActOnStartExportDecl(Scope *S, SourceLocation ExportLoc,
 2425   Decl *ActOnFinishExportDecl(Scope *S, Decl *ExportDecl,
 2425   Decl *ActOnFinishExportDecl(Scope *S, Decl *ExportDecl,
 2452   Decl *ParsedFreeStandingDeclSpec(Scope *S, AccessSpecifier AS, DeclSpec &DS,
 2454   Decl *ParsedFreeStandingDeclSpec(Scope *S, AccessSpecifier AS, DeclSpec &DS,
 2459   Decl *BuildAnonymousStructOrUnion(Scope *S, DeclSpec &DS,
 2464   Decl *BuildMicrosoftCAnonymousStruct(Scope *S, DeclSpec &DS,
 2483   NonTagKind getNonTagTypeDeclKind(const Decl *D, TagTypeKind TTK);
 2497   Decl *ActOnTag(Scope *S, unsigned TagSpec, TagUseKind TUK,
 2507   Decl *ActOnTemplatedFriendTag(Scope *S, SourceLocation FriendLoc,
 2522   void ActOnDefs(Scope *S, Decl *TagD, SourceLocation DeclStart,
 2524                  SmallVectorImpl<Decl *> &Decls);
 2525   Decl *ActOnField(Scope *S, Decl *TagD, SourceLocation DeclStart,
 2525   Decl *ActOnField(Scope *S, Decl *TagD, SourceLocation DeclStart,
 2609                          SmallVectorImpl<Decl *> &AllIvarDecls);
 2610   Decl *ActOnIvar(Scope *S, SourceLocation DeclStart,
 2615   void ActOnFields(Scope *S, SourceLocation RecLoc, Decl *TagDecl,
 2616                    ArrayRef<Decl *> Fields, SourceLocation LBrac,
 2622   void ActOnTagStartDefinition(Scope *S, Decl *TagDecl);
 2627   bool ActOnDuplicateDefinition(DeclSpec &DS, Decl *Prev,
 2633   SkippedDefinitionContext ActOnTagStartSkippedDefinition(Scope *S, Decl *TD);
 2635   Decl *ActOnObjCContainerStartDefinition(Decl *IDecl);
 2635   Decl *ActOnObjCContainerStartDefinition(Decl *IDecl);
 2640   void ActOnStartCXXMemberDeclarations(Scope *S, Decl *TagDecl,
 2647   void ActOnTagFinishDefinition(Scope *S, Decl *TagDecl,
 2663   void ActOnTagDefinitionError(Scope *S, Decl *TagDecl);
 2680   Decl *ActOnEnumConstant(Scope *S, Decl *EnumDecl, Decl *LastEnumConstant,
 2680   Decl *ActOnEnumConstant(Scope *S, Decl *EnumDecl, Decl *LastEnumConstant,
 2680   Decl *ActOnEnumConstant(Scope *S, Decl *EnumDecl, Decl *LastEnumConstant,
 2685                      Decl *EnumDecl, ArrayRef<Decl *> Elements, Scope *S,
 2685                      Decl *EnumDecl, ArrayRef<Decl *> Elements, Scope *S,
 2700   void ActOnReenterFunctionContext(Scope* S, Decl* D);
 2792   mergeTypeVisibilityAttr(Decl *D, const AttributeCommonInfo &CI,
 2794   VisibilityAttr *mergeVisibilityAttr(Decl *D, const AttributeCommonInfo &CI,
 2796   UuidAttr *mergeUuidAttr(Decl *D, const AttributeCommonInfo &CI,
 2798   DLLImportAttr *mergeDLLImportAttr(Decl *D, const AttributeCommonInfo &CI);
 2799   DLLExportAttr *mergeDLLExportAttr(Decl *D, const AttributeCommonInfo &CI);
 2801   mergeMSInheritanceAttr(Decl *D, const AttributeCommonInfo &CI, bool BestCase,
 2803   FormatAttr *mergeFormatAttr(Decl *D, const AttributeCommonInfo &CI,
 2806   SectionAttr *mergeSectionAttr(Decl *D, const AttributeCommonInfo &CI,
 2808   CodeSegAttr *mergeCodeSegAttr(Decl *D, const AttributeCommonInfo &CI,
 2810   AlwaysInlineAttr *mergeAlwaysInlineAttr(Decl *D,
 2813   MinSizeAttr *mergeMinSizeAttr(Decl *D, const AttributeCommonInfo &CI);
 2815   mergeNoSpeculativeLoadHardeningAttr(Decl *D,
 2818   mergeSpeculativeLoadHardeningAttr(Decl *D,
 2820   OptimizeNoneAttr *mergeOptimizeNoneAttr(Decl *D,
 2822   InternalLinkageAttr *mergeInternalLinkageAttr(Decl *D, const ParsedAttr &AL);
 2823   InternalLinkageAttr *mergeInternalLinkageAttr(Decl *D,
 2825   CommonAttr *mergeCommonAttr(Decl *D, const ParsedAttr &AL);
 2826   CommonAttr *mergeCommonAttr(Decl *D, const CommonAttr &AL);
 2828   void mergeDeclAttributes(NamedDecl *New, Decl *Old,
 3443     if (cast<Decl>(CurContext)
 3709   void ProcessPragmaWeak(Scope *S, Decl *D);
 3711   void ProcessDeclAttributes(Scope *S, Decl *D, const Declarator &PD);
 3713   void ProcessDeclAttributeDelayed(Decl *D,
 3715   void ProcessDeclAttributeList(Scope *S, Decl *D, const ParsedAttributesView &AL,
 3742   void CheckAlignasUnderalignment(Decl *D);
 3806   void DefaultSynthesizeProperties(Scope *S, Decl *D, SourceLocation AtEnd);
 3971   void AddAnyMethodToGlobalPool(Decl *D);
 4242   Decl *ActOnObjCExceptionDecl(Scope *S, Declarator &D);
 4245                                   Decl *Parm, Stmt *Body);
 4268   Decl *ActOnExceptionDeclarator(Scope *S, Declarator &D);
 4271                                 Decl *ExDecl, Stmt *HandlerBlock);
 4330   void PopParsingDeclaration(ParsingDeclState state, Decl *decl);
 4352   void DiagnoseUnguardedAvailabilityViolations(Decl *FD);
 4372       ExpressionEvaluationContext NewContext, Decl *LambdaContextDecl = nullptr,
 4404   void MarkAnyDeclReferenced(SourceLocation Loc, Decl *D, bool MightBeOdrUse);
 4698     Decl *ObjCImpDecl;
 4745                                    Decl *ObjCImpDecl);
 4764   void ActOnDefaultCtorInitializers(Decl *CDtorDecl);
 4991   Decl *ActOnStartNamespaceDef(Scope *S, SourceLocation InlineLoc,
 4997   void ActOnFinishNamespaceDef(Decl *Dcl, SourceLocation RBrace);
 5042   Decl *ActOnUsingDirective(Scope *CurScope, SourceLocation UsingLoc,
 5050   Decl *ActOnNamespaceAliasDef(Scope *CurScope,
 5094   Decl *ActOnUsingDeclaration(Scope *CurScope, AccessSpecifier AS,
 5099   Decl *ActOnAliasDeclaration(Scope *CurScope, AccessSpecifier AS,
 5103                               TypeResult Type, Decl *DeclFromDeclSpec);
 5288   void actOnDelayedExceptionSpecification(Decl *Method,
 5547     CXXThisScopeRAII(Sema &S, Decl *ContextDecl, Qualifiers CXXThisTypeQuals,
 5979   void ActOnCXXEnterDeclInitializer(Scope *S, Decl *Dcl);
 5983   void ActOnCXXExitDeclInitializer(Scope *S, Decl *Dcl);
 6002       Optional<std::tuple<unsigned, bool, Decl *>> Mangling = None);
 6206   Decl *ActOnStartLinkageSpecification(Scope *S,
 6210   Decl *ActOnFinishLinkageSpecification(Scope *S,
 6211                                         Decl *LinkageSpec,
 6234   void ActOnFinishCXXInClassMemberInitializer(Decl *VarDecl,
 6238   MemInitResult ActOnMemInitializer(Decl *ConstructorD,
 6250   MemInitResult ActOnMemInitializer(Decl *ConstructorD,
 6260   MemInitResult BuildMemInitializer(Decl *ConstructorD,
 6341   void ActOnMemInitializers(Decl *ConstructorDecl,
 6377                                          Decl *TagDecl, SourceLocation LBrac,
 6381   void ActOnFinishCXXNonNestedClass(Decl *D);
 6384   unsigned ActOnReenterTemplateScope(Scope *S, Decl *Template);
 6385   void ActOnStartDelayedMemberDeclarations(Scope *S, Decl *Record);
 6386   void ActOnStartDelayedCXXMethodDeclaration(Scope *S, Decl *Method);
 6387   void ActOnDelayedCXXMethodParameter(Scope *S, Decl *Param);
 6388   void ActOnFinishDelayedMemberDeclarations(Scope *S, Decl *Record);
 6389   void ActOnFinishDelayedCXXMethodDeclaration(Scope *S, Decl *Method);
 6390   void ActOnFinishDelayedMemberInitializers(Decl *Record);
 6391   void MarkAsLateParsedTemplate(FunctionDecl *FD, Decl *FnD,
 6396   Decl *ActOnStaticAssertDeclaration(SourceLocation StaticAssertLoc,
 6400   Decl *BuildStaticAssertDeclaration(SourceLocation StaticAssertLoc,
 6409   Decl *ActOnFriendTypeDecl(Scope *S, const DeclSpec &DS,
 6422   Decl *ActOnConversionDeclarator(CXXConversionDecl *Conversion);
 6447   BaseResult ActOnBaseSpecifier(Decl *classdecl,
 6457   void ActOnBaseSpecifiers(Decl *ClassDecl,
 6580   void HandleDelayedAccessCheck(sema::DelayedDiagnostic &DD, Decl *Ctx);
 6697   void DiagnoseTemplateParameterShadow(SourceLocation Loc, Decl *PrevDecl);
 6698   TemplateDecl *AdjustDeclIfTemplate(Decl *&Decl);
 6861   Decl *ActOnTemplateDeclarator(Scope *S,
 6906                                           Decl *Param,
 7095   Decl *ActOnConceptDefinition(
 7769     Decl *Entity;
 7822   llvm::DenseSet<std::pair<Decl *, unsigned>> InstantiatingSpecializations;
 7912   typedef llvm::DenseMap<Decl *, SmallVector<PartialDiagnosticAt, 1> >
 7932                           Decl *Entity,
 8056         Decl *Entity, NamedDecl *Template = nullptr,
 8366   Decl *SubstDecl(Decl *D, DeclContext *Owner,
 8366   Decl *SubstDecl(Decl *D, DeclContext *Owner,
 8397     Decl *NewDecl;
 8400                               Decl *D)
 8407                         const Decl *Pattern, Decl *Inst,
 8407                         const Decl *Pattern, Decl *Inst,
 8413                           const Decl *Pattern, Decl *Inst,
 8413                           const Decl *Pattern, Decl *Inst,
 8525                                             ArrayRef<Decl *> typeParams,
 8529   Decl *ActOnStartClassInterface(
 8534       Decl *const *ProtoRefs, unsigned NumProtoRefs,
 8548   void ActOnTypedefedProtocols(SmallVectorImpl<Decl *> &ProtocolRefs,
 8553   Decl *ActOnCompatibilityAlias(
 8563   Decl *ActOnStartProtocolInterface(
 8565       SourceLocation ProtocolLoc, Decl *const *ProtoRefNames,
 8569   Decl *ActOnStartCategoryInterface(
 8573       Decl *const *ProtoRefs, unsigned NumProtoRefs,
 8577   Decl *ActOnStartClassImplementation(SourceLocation AtClassImplLoc,
 8584   Decl *ActOnStartCategoryImplementation(SourceLocation AtCatImplLoc,
 8591   DeclGroupPtrTy ActOnFinishObjCImplementation(Decl *ObjCImpDecl,
 8592                                                ArrayRef<Decl *> Decls);
 8607                                SmallVectorImpl<Decl *> &Protocols);
 8629          SmallVectorImpl<Decl *> &protocols,
 8637                ArrayRef<Decl *> protocols,
 8650                ArrayRef<Decl *> Protocols,
 8677   void CheckObjCPropertyAttributes(Decl *PropertyPtrTy,
 8696   Decl *ActOnAtEnd(Scope *S, SourceRange AtEnd,
 8697                    ArrayRef<Decl *> allMethods = None,
 8700   Decl *ActOnProperty(Scope *S, SourceLocation AtLoc,
 8707   Decl *ActOnPropertyImplDecl(Scope *S,
 8737   Decl *ActOnMethodDeclaration(
 9054   void AddPushedVisibilityAttribute(Decl *RD);
 9066   void AddCFAuditedAttribute(Decl *D);
 9080   void AddPragmaAttributes(Scope *S, Decl *D);
 9104   void AddAlignedAttr(Decl *D, const AttributeCommonInfo &CI, Expr *E,
 9106   void AddAlignedAttr(Decl *D, const AttributeCommonInfo &CI, TypeSourceInfo *T,
 9111   void AddAssumeAlignedAttr(Decl *D, const AttributeCommonInfo &CI, Expr *E,
 9116   void AddAllocAlignAttr(Decl *D, const AttributeCommonInfo &CI,
 9121   void AddAlignValueAttr(Decl *D, const AttributeCommonInfo &CI, Expr *E);
 9125   void AddLaunchBoundsAttr(Decl *D, const AttributeCommonInfo &CI,
 9129   void AddModeAttr(Decl *D, const AttributeCommonInfo &CI, IdentifierInfo *Name,
 9132   void AddParameterABIAttr(Decl *D, const AttributeCommonInfo &CI,
 9136   void AddXConsumedAttr(Decl *D, const AttributeCommonInfo &CI,
 9141   void addAMDGPUFlatWorkGroupSizeAttr(Decl *D, const AttributeCommonInfo &CI,
 9146   void addAMDGPUWavesPerEUAttr(Decl *D, const AttributeCommonInfo &CI,
 9182   llvm::DenseMap<const Decl*, std::set<std::string>> OpenCLDeclExtMap;
 9215   void setOpenCLExtensionForDecl(Decl *FD, llvm::StringRef Exts);
 9225   void setCurrentOpenCLExtensionForDecl(Decl *FD);
 9227   bool isOpenCLDisabledDecl(Decl *FD);
 9429       AccessSpecifier AS, Decl *PrevDeclInScope = nullptr);
 9431   void ActOnOpenMPDeclareReductionCombinerStart(Scope *S, Decl *D);
 9433   void ActOnOpenMPDeclareReductionCombinerEnd(Decl *D, Expr *Combiner);
 9436   VarDecl *ActOnOpenMPDeclareReductionInitializerStart(Scope *S, Decl *D);
 9438   void ActOnOpenMPDeclareReductionInitializerEnd(Decl *D, Expr *Initializer,
 9454       Decl *PrevDeclInScope = nullptr);
 9481   checkDeclIsAllowedInOpenMPTarget(Expr *E, Decl *D,
10595     Decl *ConditionVar;
10602     ConditionResult(Sema &S, Decl *ConditionVar, FullExprArg Condition,
10637   ConditionResult ActOnConditionVariable(Decl *ConditionVar,
10688   bool CheckObjCDeclScope(Decl *D);
11133   QualType ProduceCtorInitMemberSignatureHelp(Scope *S, Decl *ConstructorDecl,
11139   void CodeCompleteInitializer(Scope *S, Decl *D);
11151                                 Decl *Constructor,
11513   Decl *getObjCDeclContext() const;
11638       Decl *LambdaContextDecl = nullptr,
11688   Decl *D;
tools/clang/include/clang/Sema/SemaInternal.h
   44 inline bool DeclAttrsMatchCUDAMode(const LangOptions &LangOpts, Decl *D) {
   54 inline InheritableAttr *getDLLAttr(Decl *D) {
tools/clang/include/clang/Sema/Template.h
  238         llvm::SmallDenseMap<const Decl *,
  239                             llvm::PointerUnion<Decl *, DeclArgumentPack *>, 4>;
  341         const Decl *D = I->first;
  342         llvm::PointerUnion<Decl *, DeclArgumentPack *> &Stored =
  344         if (I->second.is<Decl *>()) {
  345           Stored = I->second.get<Decl *>();
  377     llvm::PointerUnion<Decl *, DeclArgumentPack *> *
  380     void InstantiatedLocal(const Decl *D, Decl *Inst);
  380     void InstantiatedLocal(const Decl *D, Decl *Inst);
  381     void InstantiatedLocalPackArg(const Decl *D, VarDecl *Inst);
  382     void MakeInstantiatedLocalArgPack(const Decl *D);
  418     : public DeclVisitor<TemplateDeclInstantiator, Decl *>
  476     Decl *VisitCXXMethodDecl(CXXMethodDecl *D,
  480     Decl *VisitFunctionDecl(FunctionDecl *D,
  482     Decl *VisitDecl(Decl *D);
  482     Decl *VisitDecl(Decl *D);
  483     Decl *VisitVarDecl(VarDecl *D, bool InstantiatingVarTemplate,
  545     Decl *VisitVarTemplateSpecializationDecl(
  551     Decl *InstantiateTypedefNameDecl(TypedefNameDecl *D, bool IsTypeAlias);
  564     Decl *instantiateUnresolvedUsingDecl(T *D,
tools/clang/include/clang/Sema/TemplateDeduction.h
  283   Decl *Specialization;
  288   void set(DeclAccessPair Found, Decl *Spec, DeductionFailureInfo Info) {
tools/clang/include/clang/Serialization/ASTDeserializationListener.h
   47   virtual void DeclRead(serialization::DeclID ID, const Decl *D) { }
tools/clang/include/clang/Serialization/ASTReader.h
  493   std::vector<Decl *> DeclsLoaded;
  512     Decl *D;
  518     PendingUpdateRecord(serialization::GlobalDeclID ID, Decl *D,
  537   llvm::SmallMapVector<Decl *, FunctionDecl *, 4> PendingExceptionSpecUpdates;
  551   llvm::DenseMap<Decl*, llvm::SmallVector<NamedDecl*, 2>>
  598   llvm::SmallPtrSet<Decl *, 4> PendingDefinitions;
  601       llvm::MapVector<Decl *, uint64_t,
  602                       llvm::SmallDenseMap<Decl *, unsigned, 4>,
  603                       SmallVector<std::pair<Decl *, uint64_t>, 4>>;
  677   using HiddenNames = SmallVector<Decl *, 2>;
  885   llvm::DenseMap<const Decl *, std::set<std::string>> OpenCLDeclExtMap;
 1043     Decl *D;
 1047     InterestingDecl(Decl *D, bool HasBody)
 1050     Decl *getDecl() { return D; }
 1073   SmallVector<std::pair<Decl *, uint64_t>, 16> PendingDeclChains;
 1077   SmallVector<Decl *, 16> PendingIncompleteDeclChains;
 1082     Decl *D;
 1130       llvm::DenseMap<Decl *, SmallVector<serialization::DeclID, 2>>;
 1202   llvm::DenseMap<const Decl *, bool> DefinitionSource;
 1232   Decl *getKeyDeclaration(Decl *D) {
 1232   Decl *getKeyDeclaration(Decl *D) {
 1242   const Decl *getKeyDeclaration(const Decl *D) {
 1242   const Decl *getKeyDeclaration(const Decl *D) {
 1248   void forEachImportedKeyDecl(const Decl *D, Fn Visit) {
 1345   void LoadedDecl(unsigned Index, Decl *D);
 1346   Decl *ReadDeclRecord(serialization::DeclID ID);
 1347   void markIncompleteDeclChain(Decl *Canon);
 1352   Decl *getMostRecentExistingDecl(Decl *D);
 1352   Decl *getMostRecentExistingDecl(Decl *D);
 1357   void loadPendingDeclChain(Decl *D, uint64_t LocalOffset);
 1393             std::random_access_iterator_tag, const Decl *, ptrdiff_t,
 1394             const Decl *, const Decl *> {
 1394             const Decl *, const Decl *> {
 1422   void PassInterestingDeclToConsumer(Decl *D);
 1429   void addPendingDeclContextInfo(Decl *D,
 1828   ModuleFile *getOwningModuleFile(const Decl *D);
 1832   std::string getOwningModuleNameForDiagnostic(const Decl *D);
 1839   Decl *GetDecl(serialization::DeclID ID);
 1840   Decl *GetExternalDecl(uint32_t ID) override;
 1844   Decl *GetExistingDecl(serialization::DeclID ID);
 1847   Decl *GetLocalDecl(ModuleFile &F, uint32_t LocalID) {
 1877   Decl *ReadDecl(ModuleFile &F, const RecordData &R, unsigned &I) {
 1894   void CompleteRedeclChain(const Decl *D) override;
 1931                            llvm::function_ref<bool(Decl::Kind)> IsKindWeWant,
 1932                            SmallVectorImpl<Decl *> &Decls) override;
 1938                            SmallVectorImpl<Decl *> &Decls) override;
 2042                                SmallVectorImpl<Decl *> *Decls = nullptr);
 2099   bool DeclIsFromPCHWithObjectFile(const Decl *D) override;
 2111   ExtKind hasExternalDefinitions(const Decl *D) override;
 2531   Decl *readDecl() {
tools/clang/include/clang/Serialization/ASTWriter.h
  176     DeclOrType(Decl *D) : Stored(D), IsType(false) {}
  187     Decl *getDecl() const {
  212   llvm::DenseMap<const Decl *, serialization::DeclID> DeclIDs;
  234   void associateDeclWithFile(const Decl *D, serialization::DeclID);
  335   llvm::DenseMap<const Decl *, unsigned> AnonymousDeclarationNumbers;
  342       const Decl *Dcl;
  352     DeclUpdate(unsigned Kind, const Decl *Dcl) : Kind(Kind), Dcl(Dcl) {}
  363     const Decl *getDecl() const { return Dcl; }
  376   using DeclUpdateMap = llvm::MapVector<const Decl *, UpdateRecord>;
  382   using FirstLatestDeclMap = llvm::DenseMap<Decl *, Decl *>;
  382   using FirstLatestDeclMap = llvm::DenseMap<Decl *, Decl *>;
  414   SmallVector<const Decl *, 16> DeclsToEmitEvenIfUnreferenced;
  422   llvm::SmallVector<const Decl *, 16> Redeclarations;
  426   llvm::DenseMap<const Decl *, const Decl *> FirstLocalDeclCache;
  426   llvm::DenseMap<const Decl *, const Decl *> FirstLocalDeclCache;
  535   void WriteDecl(ASTContext &Context, Decl *D);
  613   const Decl *getFirstLocalDecl(const Decl *D);
  613   const Decl *getFirstLocalDecl(const Decl *D);
  618   bool IsLocalDecl(const Decl *D) {
  627   void AddDeclRef(const Decl *D, RecordDataImpl &Record);
  630   serialization::DeclID GetDeclRef(const Decl *D);
  634   serialization::DeclID getDeclID(const Decl *D);
  714   void AddedVisibleDecl(const DeclContext *DC, const Decl *D) override;
  715   void AddedCXXImplicitMember(const CXXRecordDecl *RD, const Decl *D) override;
  737   void DeclarationMarkedUsed(const Decl *D) override;
  738   void DeclarationMarkedOpenMPThreadPrivate(const Decl *D) override;
  739   void DeclarationMarkedOpenMPDeclareTarget(const Decl *D,
  741   void DeclarationMarkedOpenMPAllocate(const Decl *D, const Attr *A) override;
  909   void AddDeclRef(const Decl *D) {
tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h
  178   virtual const Decl *getDeclWithIssue() const = 0;
  195   virtual const Decl *getUniqueingDecl() const = 0;
  253   const Decl *DeclWithIssue = nullptr;
  268   const Decl *getDeclWithIssue() const override {
  276   const Decl *getUniqueingDecl() const override {
  282   void setDeclWithIssue(const Decl *declWithIssue) {
  356   const Decl *UniqueingDecl;
  392                          const Decl *DeclToUnique)
  418   const Decl *getUniqueingDecl() const override {
  422   const Decl *getDeclWithIssue() const override;
  618   void EmitBasicReport(const Decl *DeclWithIssue, const CheckerBase *Checker,
  624   void EmitBasicReport(const Decl *DeclWithIssue, CheckerNameRef CheckerName,
tools/clang/include/clang/StaticAnalyzer/Core/Checker.h
   31   static void _checkDecl(void *checker, const Decl *D, AnalysisManager& mgr,
   36   static bool _handlesDecl(const Decl *D) {
   50   static void _checkBody(void *checker, const Decl *D, AnalysisManager& mgr,
tools/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h
  188   void runCheckersOnASTDecl(const Decl *D, AnalysisManager& mgr,
  192   void runCheckersOnASTBody(const Decl *D, AnalysisManager& mgr,
  430       CheckerFn<void (const Decl *, AnalysisManager&, BugReporter &)>;
  432   using HandlesDeclFunc = bool (*)(const Decl *D);
tools/clang/include/clang/StaticAnalyzer/Core/IssueHash.h
   40                                    llvm::StringRef BugType, const Decl *D,
   47                            const Decl *D, const LangOptions &LangOpts);
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h
  104   CFG *getCFG(Decl const *D) {
  109   T *getAnalysis(Decl const *D) {
  113   ParentMap &getParentMap(Decl const *D) {
  117   AnalysisDeclContext *getAnalysisDeclContext(const Decl *D) {
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
  104   const Decl *D = nullptr;
  114   RuntimeDefinition(const Decl *InD): D(InD) {}
  115   RuntimeDefinition(const Decl *InD, const MemRegion *InR): D(InD), R(InR) {}
  117   const Decl *getDecl() { return D; }
  145   llvm::PointerUnion<const Expr *, const Decl *> Origin;
  170   CallEvent(const Decl *D, ProgramStateRef state, const LocationContext *lctx)
  202   virtual const Decl *getDecl() const {
  203     return Origin.dyn_cast<const Decl *>();
  235     const Decl *D = getDecl();
  374   static QualType getDeclaredResultType(const Decl *D);
  379   static bool isVariadic(const Decl *D);
  466   AnyFunctionCall(const Decl *D, ProgramStateRef St,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
  276   StringRef getDeclDescription(const Decl *D);
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h
  154   const Decl &getCodeDecl() const { return *getLocationContext()->getDecl(); }
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
  703   void examineStackFrames(const Decl *D, const LocationContext *LCtx,
  739   bool shouldInlineCall(const CallEvent &Call, const Decl *D,
  743   bool inlineCall(const CallEvent &Call, const Decl *D, NodeBuilder &Bldr,
  754                      const CallEvent &Call, const Decl *D, NodeBuilder &Bldr,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/FunctionSummary.h
   30 using SetOfDecls = std::deque<Decl *>;
   31 using SetOfConstDecls = llvm::DenseSet<const Decl *>;
   57   using MapTy = llvm::DenseMap<const Decl *, FunctionSummary>;
   66     using KVPair = std::pair<const Decl *, FunctionSummary>;
   73   void markMayInline(const Decl *D) {
   79   void markShouldNotInline(const Decl *D) {
   85   void markReachedMaxBlockCount(const Decl *D) {
   89   Optional<bool> mayInline(const Decl *D) {
   96   void markVisitedBasicBlock(unsigned ID, const Decl* D, unsigned TotalIDs) {
  107   unsigned getNumVisitedBasicBlocks(const Decl* D) {
  114   unsigned getNumTimesInlined(const Decl* D) {
  121   void bumpNumTimesInlined(const Decl* D) {
  127   unsigned getPercentBlocksReachable(const Decl *D) {
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h
  915   static void ProfileRegion(llvm::FoldingSetNodeID& ID, const Decl *D,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h
  298   SVal getLValueFieldOrIvar(const Decl *decl, SVal base);
tools/clang/include/clang/Tooling/Refactoring/ASTSelection.h
  130   const Decl *getFunctionLikeNearestParent() const;
tools/clang/include/clang/Tooling/Refactoring/Rename/USRFinder.h
   44 std::string getUSRForDecl(const Decl *Decl);
tools/clang/include/clang/Tooling/Refactoring/Rename/USRLocFinder.h
   39                           llvm::StringRef NewName, Decl *TranslationUnitDecl);
   47                                        StringRef PrevName, Decl *Decl);
tools/clang/lib/ARCMigrate/ObjCMT.cpp
   49   void migrateDecl(Decl *D);
   66   void migrateCFAnnotation(ASTContext &Ctx, const Decl *Decl);
  106   llvm::SmallVector<const Decl *, 8> CFFunctionIBCandidates;
  176   bool canModify(const Decl *D) {
  184       return canModify(cast<Decl>(MD->getDeclContext()));
  385 void ObjCMigrateASTConsumer::migrateDecl(Decl *D) {
 1140 static bool AttributesMatch(const Decl *Decl1, const Decl *Decl2,
 1140 static bool AttributesMatch(const Decl *Decl1, const Decl *Decl2,
 1406   const Decl *FirstFD = CFFunctionIBCandidates[0];
 1407   const Decl *LastFD  =
 1431 void ObjCMigrateASTConsumer::migrateCFAnnotation(ASTContext &Ctx, const Decl *Decl) {
tools/clang/lib/ARCMigrate/TransAutoreleasePool.cpp
   43   Decl *Dcl;
   47   ReleaseCollector(Decl *D, SmallVectorImpl<ObjCMessageExpr *> &releases)
   78   void transformBody(Stmt *body, Decl *ParentD) {
tools/clang/lib/ARCMigrate/TransGCAttrs.cpp
   45   bool TraverseDecl(Decl *D) {
   60   void lookForAttribute(Decl *D, TypeSourceInfo *TInfo) {
   85   bool handleAttr(AttributedTypeLoc TL, Decl *D = nullptr) {
  120   bool isMigratable(Decl *D) {
  141     return isMigratable(cast<Decl>(D->getDeclContext()));
  144   static bool hasObjCImpl(Decl *D) {
  157   bool isInMainFile(Decl *D) {
  264                               cast<Decl>(IndProps.front()->getDeclContext()))) {
tools/clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp
   53   void transformBody(Stmt *body, Decl *ParentD) {
  187     Decl *RefD = getReferencedDecl(Rec);
  208     Decl *RefD = getReferencedDecl(Rec);
  219   bool isPlusOneAssignToVar(Stmt *S, Decl *RefD) {
  289   Decl *getReferencedDecl(Expr *E) {
tools/clang/lib/ARCMigrate/TransUnbridgedCasts.cpp
   63   Decl *ParentD;
   73   void transformBody(Stmt *body, Decl *ParentD) {
tools/clang/lib/ARCMigrate/TransUnusedInitDelegate.cpp
   43   void transformBody(Stmt *body, Decl *ParentD) {
tools/clang/lib/ARCMigrate/Transforms.h
   90     Decl *Dcl;
  187   Decl *ParentD;
  200     SaveAndRestore<Decl *> SetParent(ParentD, D);
tools/clang/lib/AST/APValue.cpp
  605         const Decl *BaseOrMember = Path[I].getAsBaseOrMember().getPointer();
tools/clang/lib/AST/ASTContext.cpp
  104 static SourceLocation getDeclLocForCommentSearch(const Decl *D,
  194     const Decl *D, const SourceLocation RepresentativeLocForDecl,
  271 RawComment *ASTContext::getRawCommentForDeclNoCache(const Decl *D) const {
  298 static const Decl &adjustDeclToTemplate(const Decl &D) {
  298 static const Decl &adjustDeclToTemplate(const Decl &D) {
  366                                                 const Decl *D,
  367                                                 const Decl **OriginalDecl) const {
  387   const Decl *CanonicalD = D->getCanonicalDecl();
  436 void ASTContext::cacheRawCommentForDecl(const Decl &OriginalD,
  440   const Decl *const CanonicalDecl = OriginalD.getCanonicalDecl();
  462 void ASTContext::attachCommentsToJustParsedDecls(ArrayRef<Decl *> Decls,
  484   for (const Decl *D : Decls) {
  509                                                     const Decl *D) const {
  523 comments::FullComment *ASTContext::getLocalCommentForDeclUncached(const Decl *D) const {
  529                                               const Decl *D,
  535   const Decl *Canonical = D->getCanonicalDecl();
  536   llvm::DenseMap<const Decl *, comments::FullComment *>::iterator Pos =
  548   const Decl *OriginalDecl = nullptr;
  571         if (const Decl *TD = TT->getDecl())
  873   for (llvm::DenseMap<const Decl*, AttrVec*>::iterator A = DeclAttrs.begin(),
  898       llvm::PointerUnion4<const Decl *, const Stmt *,
  905       llvm::PointerUnion4<const Decl *, const Stmt *,
  914     if (const auto *D = U.dyn_cast<const Decl *>())
  914     if (const auto *D = U.dyn_cast<const Decl *>())
  960 void ASTContext::setTraversalScope(const std::vector<Decl *> &TopLevelDecls) {
 1074 void ASTContext::addModuleInitializer(Module *M, Decl *D) {
 1088       auto *OnlyDecl = Imported.Initializers.front();
 1108 ArrayRef<Decl *> ASTContext::getModuleInitializers(Module *M) {
 1394 AttrVec& ASTContext::getDeclAttrs(const Decl *D) {
 1405 void ASTContext::eraseDeclAttrs(const Decl *D) {
 1406   llvm::DenseMap<const Decl*, AttrVec*>::iterator Pos = DeclAttrs.find(D);
 1598 CharUnits ASTContext::getDeclAlign(const Decl *D, bool ForAlignof) const {
 2369 void ASTContext::CollectInheritedProtocols(const Decl *CDecl,
 6330     getObjCEncodingForMethodParameter(Decl::OBJC_TQ_None, BlockReturnTy, S,
 6365       getObjCEncodingForMethodParameter(Decl::OBJC_TQ_None, PType,
 6418 void ASTContext::getObjCEncodingForMethodParameter(Decl::ObjCDeclQualifier QT,
 6490                                       const Decl *Container) const {
 6533                                            const Decl *Container) const {
 7280 void ASTContext::getObjCEncodingForTypeQualifier(Decl::ObjCDeclQualifier QT,
 7282   if (QT & Decl::OBJC_TQ_In)
 7284   if (QT & Decl::OBJC_TQ_Inout)
 7286   if (QT & Decl::OBJC_TQ_Out)
 7288   if (QT & Decl::OBJC_TQ_Bycopy)
 7290   if (QT & Decl::OBJC_TQ_Byref)
 7292   if (QT & Decl::OBJC_TQ_Oneway)
 7679 Decl *ASTContext::getVaListTagDecl() const {
 9821                                                 const Decl *D, GVALinkage L) {
 9843 adjustGVALinkageForExternalDefinitionKind(const ASTContext &Ctx, const Decl *D,
 9954 bool ASTContext::DeclMustBeEmitted(const Decl *D) {
10270 ASTContext::getManglingNumberContext(NeedExtraManglingDecl_t, const Decl *D) {
10443         if (const auto *D = ParentStack.back().get<Decl>())
10443         if (const auto *D = ParentStack.back().get<Decl>())
10476   bool TraverseDecl(Decl *DeclNode) {
tools/clang/lib/AST/ASTDumper.cpp
   28     NodeDumper.dumpBareDeclRef(cast<Decl>(DC));
   33       NodeDumper.dumpPointer(cast<Decl>(Primary));
   63               std::function<void(Decl *)> DumpWithPrev = [&](Decl *D) {
   64                 if (Decl *Prev = D->getPreviousDecl())
tools/clang/lib/AST/ASTImporter.cpp
   81   using ExpectedDecl = llvm::Expected<Decl *>;
  110   SmallVector<Decl *, 2>
  112     SmallVector<Decl *, 2> Redecls;
  122   SmallVector<Decl*, 2> getCanonicalForwardRedeclChain(Decl* D) {
  132   void updateFlags(const Decl *From, Decl *To) {
  132   void updateFlags(const Decl *From, Decl *To) {
  152     LLVM_NODISCARD Error importInto(ImportT *&To, ImportT *From) {
  152     LLVM_NODISCARD Error importInto(ImportT *&To, ImportT *From) {
  155         To = cast_or_null<ImportT>(*ToOrErr);
  162     Expected<T *> import(T *From) {
  162     Expected<T *> import(T *From) {
  166       return cast_or_null<T>(*ToOrErr);
  170     Expected<T *> import(const T *From) {
  170     Expected<T *> import(const T *From) {
  272     void InitializeImportedDecl(Decl *FromD, Decl *ToD) {
  272     void InitializeImportedDecl(Decl *FromD, Decl *ToD) {
  292     Decl *FindAndMapDefinition(FunctionDecl *D, FunctionDecl *FoundFunction) {
  359     Error ImportDefinitionIfNeeded(Decl *FromD, Decl *ToD = nullptr);
  359     Error ImportDefinitionIfNeeded(Decl *FromD, Decl *ToD = nullptr);
  364         Decl *From, DeclContext *&ToDC, DeclContext *&ToLexicalDC);
  436     bool IsStructuralMatch(Decl *From, Decl *To, bool Complain);
  436     bool IsStructuralMatch(Decl *From, Decl *To, bool Complain);
  448     ExpectedDecl VisitDecl(Decl *D);
  859   SmallVector<Decl *, 1> ToDecls;
  861   for (Decl *FromD : DG) {
 1242   Decl *ToPrevD;
 1588 Error ASTNodeImporter::ImportDefinitionIfNeeded(Decl *FromD, Decl *ToD) {
 1588 Error ASTNodeImporter::ImportDefinitionIfNeeded(Decl *FromD, Decl *ToD) {
 1680   for (auto *From : FromDC->decls()) {
 1727   for (auto *D : FromRD->decls()) {
 1730       Decl *ToD = Importer.GetAlreadyImportedOrNull(D);
 1748     Decl *FromD, DeclContext *&ToDC, DeclContext *&ToLexicalDC) {
 1988 bool ASTNodeImporter::IsStructuralMatch(Decl *From, Decl *To, bool Complain) {
 1988 bool ASTNodeImporter::IsStructuralMatch(Decl *From, Decl *To, bool Complain) {
 2000   Decl *ToOrigin = Importer.GetOriginalDecl(ToRecord);
 2027   if (Decl *ToOrigin = Importer.GetOriginalDecl(ToEnum))
 2082 ExpectedDecl ASTNodeImporter::VisitDecl(Decl *D) {
 2201       if (!FoundDecl->isInIdentifierNamespace(Decl::IDNS_Namespace))
 2215           Name, DC, Decl::IDNS_Namespace, ConflictingDecls.data(),
 2314     unsigned IDNS = Decl::IDNS_Ordinary;
 2406     unsigned IDNS = Decl::IDNS_Ordinary;
 2497   unsigned IDNS = Decl::IDNS_Tag;
 2503     IDNS = Decl::IDNS_Ordinary;
 2505     IDNS |= Decl::IDNS_Ordinary;
 2578             Decl::FOK_None;
 2592   unsigned IDNS = Decl::IDNS_Tag;
 2598     IDNS = Decl::IDNS_Ordinary;
 2600     IDNS |= Decl::IDNS_Ordinary | Decl::IDNS_TagFriend;
 2600     IDNS |= Decl::IDNS_Ordinary | Decl::IDNS_TagFriend;
 2619       Decl *Found = FoundDecl;
 2724     if (LexicalDC != DC && D->isInIdentifierNamespace(Decl::IDNS_TagFriend))
 2749         SmallVector<Decl *, 2> Redecls =
 2751         for (auto *R : Redecls) {
 2824     unsigned IDNS = Decl::IDNS_Ordinary;
 2996   SmallVector<Decl *, 2> Redecls = getCanonicalForwardRedeclChain(D);
 3031       if (Decl *Def = FindAndMapDefinition(D, FoundFunction))
 3040     unsigned IDNS = Decl::IDNS_Ordinary | Decl::IDNS_OrdinaryFriend;
 3040     unsigned IDNS = Decl::IDNS_Ordinary | Decl::IDNS_OrdinaryFriend;
 3051           if (Decl *Def = FindAndMapDefinition(D, FoundFunction))
 3311   bool IsFriend = D->isInIdentifierNamespace(Decl::IDNS_OrdinaryFriend);
 3548     if (FriendD->getFriendObjectKind() != Decl::FOK_None &&
 3549         !(FriendD->isInIdentifierNamespace(Decl::IDNS_NonMemberOperator)))
 3643   SmallVector<Decl*, 2> Redecls = getCanonicalForwardRedeclChain(D);
 3669     unsigned IDNS = Decl::IDNS_Ordinary;
 4197     if (!FoundDecl->isInIdentifierNamespace(Decl::IDNS_ObjCProtocol))
 4622     if (!FoundDecl->isInIdentifierNamespace(Decl::IDNS_Ordinary))
 5036   bool IsFriend = D->getFriendObjectKind() != Decl::FOK_None;
 5055       if (!FoundDecl->isInIdentifierNamespace(Decl::IDNS_Ordinary |
 5056                                               Decl::IDNS_TagFriend))
 5059       Decl *Found = FoundDecl;
 5080           Name, DC, Decl::IDNS_Ordinary, ConflictingDecls.data(),
 5348     if (!FoundDecl->isInIdentifierNamespace(Decl::IDNS_Ordinary))
 5351     Decl *Found = FoundDecl;
 5365         Name, DC, Decl::IDNS_Ordinary, ConflictingDecls.data(),
 5576     unsigned IDNS = Decl::IDNS_Ordinary | Decl::IDNS_OrdinaryFriend;
 5576     unsigned IDNS = Decl::IDNS_Ordinary | Decl::IDNS_OrdinaryFriend;
 7446   for (Decl *D : E->decls())
 7798 Optional<unsigned> ASTImporter::getFieldIndex(Decl *F) {
 7807   for (const auto *D : Owner->decls()) {
 7853 void ASTImporter::AddToLookupTable(Decl *ToD) {
 7857 Expected<Decl *> ASTImporter::ImportImpl(Decl *FromD) {
 7857 Expected<Decl *> ASTImporter::ImportImpl(Decl *FromD) {
 7863 void ASTImporter::RegisterImportedDecl(Decl *FromD, Decl *ToD) {
 7863 void ASTImporter::RegisterImportedDecl(Decl *FromD, Decl *ToD) {
 7917 Decl *ASTImporter::GetAlreadyImportedOrNull(const Decl *FromD) const {
 7917 Decl *ASTImporter::GetAlreadyImportedOrNull(const Decl *FromD) const {
 7925 TranslationUnitDecl *ASTImporter::GetFromTU(Decl *ToD) {
 7932 Expected<Decl *> ASTImporter::Import(Decl *FromD) {
 7932 Expected<Decl *> ASTImporter::Import(Decl *FromD) {
 7947   Decl *ToD = GetAlreadyImportedOrNull(FromD);
 7973       auto *ToD = Pos->second;
 8011       for (Decl *FromDi : Path) {
 8062   ExpectedDecl ToDCOrErr = Import(cast<Decl>(FromDC));
 8582 Error ASTImporter::ImportDefinition(Decl *From) {
 8586   Decl *To = *ToOrErr;
 8741 void ASTImporter::CompleteDecl (Decl *D) {
 8761 Decl *ASTImporter::MapImported(Decl *From, Decl *To) {
 8761 Decl *ASTImporter::MapImported(Decl *From, Decl *To) {
 8761 Decl *ASTImporter::MapImported(Decl *From, Decl *To) {
 8762   llvm::DenseMap<Decl *, Decl *>::iterator Pos = ImportedDecls.find(From);
 8762   llvm::DenseMap<Decl *, Decl *>::iterator Pos = ImportedDecls.find(From);
 8776 ASTImporter::getImportDeclErrorIfAny(Decl *FromD) const {
 8784 void ASTImporter::setImportDeclError(Decl *From, ImportError Error) {
tools/clang/lib/AST/ASTImporterLookupTable.cpp
  136     llvm::errs() << "== DC:" << cast<Decl>(DC) << Primary << "\n";
tools/clang/lib/AST/ASTStructuralEquivalence.cpp
  100                                      Decl *D1, Decl *D2);
  100                                      Decl *D1, Decl *D2);
 1574                                      Decl *D1, Decl *D2) {
 1574                                      Decl *D1, Decl *D2) {
 1579   std::pair<Decl *, Decl *> P{D1, D2};
 1579   std::pair<Decl *, Decl *> P{D1, D2};
 1626   for (const auto *D : Owner->noload_decls()) {
 1705 bool StructuralEquivalenceContext::IsEquivalent(Decl *D1, Decl *D2) {
 1705 bool StructuralEquivalenceContext::IsEquivalent(Decl *D1, Decl *D2) {
 1733 bool StructuralEquivalenceContext::CheckCommonEquivalence(Decl *D1, Decl *D2) {
 1733 bool StructuralEquivalenceContext::CheckCommonEquivalence(Decl *D1, Decl *D2) {
 1748     Decl *D1, Decl *D2) {
 1748     Decl *D1, Decl *D2) {
 1885     std::pair<Decl *, Decl *> P = DeclsToCheck.front();
 1885     std::pair<Decl *, Decl *> P = DeclsToCheck.front();
 1888     Decl *D1 = P.first;
 1889     Decl *D2 = P.second;
tools/clang/lib/AST/ASTTypeTraits.cpp
   81 ASTNodeKind ASTNodeKind::getFromNode(const Decl &D) {
  144   else if (const Decl *D = get<Decl>())
  144   else if (const Decl *D = get<Decl>())
  155   if (const Decl *D = get<Decl>())
  155   if (const Decl *D = get<Decl>())
  172   if (const Decl *D = get<Decl>())
  172   if (const Decl *D = get<Decl>())
tools/clang/lib/AST/CXXInheritance.cpp
  433   const unsigned IDNS = Decl::IDNS_Ordinary | Decl::IDNS_Tag |
  433   const unsigned IDNS = Decl::IDNS_Ordinary | Decl::IDNS_Tag |
  434                         Decl::IDNS_Member;
tools/clang/lib/AST/Comment.cpp
  223   Decl::Kind K = CommentDecl->getKind();
  228   case Decl::Function:
  229   case Decl::CXXMethod:
  230   case Decl::CXXConstructor:
  231   case Decl::CXXDestructor:
  232   case Decl::CXXConversion: {
  244     if (K == Decl::CXXMethod || K == Decl::CXXConstructor ||
  244     if (K == Decl::CXXMethod || K == Decl::CXXConstructor ||
  245         K == Decl::CXXDestructor || K == Decl::CXXConversion) {
  245         K == Decl::CXXDestructor || K == Decl::CXXConversion) {
  252   case Decl::ObjCMethod: {
  262   case Decl::FunctionTemplate: {
  272   case Decl::ClassTemplate: {
  279   case Decl::ClassTemplatePartialSpecialization: {
  287   case Decl::ClassTemplateSpecialization:
  291   case Decl::Record:
  292   case Decl::CXXRecord:
  295   case Decl::Var:
  296   case Decl::Field:
  297   case Decl::EnumConstant:
  298   case Decl::ObjCIvar:
  299   case Decl::ObjCAtDefsField:
  300   case Decl::ObjCProperty: {
  319   case Decl::Namespace:
  322   case Decl::TypeAlias:
  323   case Decl::Typedef: {
  328         K == Decl::Typedef
  342   case Decl::TypeAliasTemplate: {
  363   case Decl::Enum:
tools/clang/lib/AST/CommentSema.cpp
   35 void Sema::setDecl(const Decl *D) {
  602       case Decl::CXXConstructor:
  605       case Decl::CXXDestructor:
  670   const Decl *D = ThisDeclInfo->CommentDecl;
  892   return ThisDeclInfo->CurrentDecl->getKind() == Decl::ObjCProperty;
tools/clang/lib/AST/Decl.cpp
   75 Decl *clang::getPrimaryMergedDecl(Decl *D) {
   75 Decl *clang::getPrimaryMergedDecl(Decl *D) {
  301 static const Decl *getOutermostFuncOrBlockContext(const Decl *D) {
  301 static const Decl *getOutermostFuncOrBlockContext(const Decl *D) {
  302   const Decl *Ret = nullptr;
  304   while (DC->getDeclKind() != Decl::TranslationUnit) {
  306       Ret = cast<Decl>(DC);
  563 static bool isSingleLineLanguageLinkage(const Decl &D) {
  580   case Decl::ModuleOwnershipKind::Unowned:
  581   case Decl::ModuleOwnershipKind::ModulePrivate:
  583   case Decl::ModuleOwnershipKind::Visible:
  584   case Decl::ModuleOwnershipKind::VisibleWhenImported:
  613 static StorageClass getStorageClass(const Decl *D) {
 1182                                              Decl *ContextDecl,
 1271   const Decl *OuterD = getOutermostFuncOrBlockContext(D);
 1348     case Decl::ImplicitParam:
 1349     case Decl::Label:
 1350     case Decl::NamespaceAlias:
 1351     case Decl::ParmVar:
 1352     case Decl::Using:
 1353     case Decl::UsingShadow:
 1354     case Decl::UsingDirective:
 1357     case Decl::EnumConstant:
 1363     case Decl::Typedef:
 1364     case Decl::TypeAlias:
 1372     case Decl::TemplateTemplateParm: // count these as external
 1373     case Decl::NonTypeTemplateParm:
 1374     case Decl::ObjCAtDefsField:
 1375     case Decl::ObjCCategory:
 1376     case Decl::ObjCCategoryImpl:
 1377     case Decl::ObjCCompatibleAlias:
 1378     case Decl::ObjCImplementation:
 1379     case Decl::ObjCMethod:
 1380     case Decl::ObjCProperty:
 1381     case Decl::ObjCPropertyImpl:
 1382     case Decl::ObjCProtocol:
 1385     case Decl::CXXRecord: {
 1680 static bool isRedeclarable(Decl::Kind K) {
 3932   return new (C, DC) FieldDecl(Decl::Field, DC, StartLoc, IdLoc, Id, T, TInfo,
 4374   SmallVector<Decl*, 64> Decls;
tools/clang/lib/AST/DeclBase.cpp
   77   static_assert(sizeof(unsigned) * 2 >= alignof(Decl),
  103         llvm::offsetToAlignment(sizeof(Module *), llvm::Align(alignof(Decl)));
  108         Parent ? cast<Decl>(Parent)->getOwningModule() : nullptr;
  314       setLocalOwningModule(cast<Decl>(DC)->getOwningModule());
  328     auto *MDC = new (Ctx) Decl::MultipleDC();
  399   const Decl *CanonD = getCanonicalDecl();
  428   for (const auto *I : redecls())
  436   const Decl *Definition = nullptr;
  449   if (auto *dcd = dyn_cast<Decl>(getDeclContext())) {
  858 Decl *Decl::castFromDeclContext (const DeclContext *D) {
  859   Decl::Kind DK = D->getDeclKind();
  877 DeclContext *Decl::castToDeclContext(const Decl *D) {
  878   Decl::Kind DK = D->getKind();
  945 static Decl::Kind getKind(const Decl *D) { return D->getKind(); }
  945 static Decl::Kind getKind(const Decl *D) { return D->getKind(); }
  946 static Decl::Kind getKind(const DeclContext *DC) { return DC->getDeclKind(); }
  949   return getASTContext().getAllocator().identifyKnownAlignedObject<Decl>(this);
  973 template <class T> static Decl *getNonClosureContext(T *D) {
  973 template <class T> static Decl *getNonClosureContext(T *D) {
  974   if (getKind(D) == Decl::CXXMethod) {
  992 Decl *Decl::getNonClosureContext() {
  996 Decl *DeclContext::getNonClosureAncestor() {
 1004 DeclContext::DeclContext(Decl::Kind K) {
 1014 bool DeclContext::classof(const Decl *D) {
 1110     if (cast<Decl>(this)->getFriendObjectKind())
 1122   if (getDeclKind() == Decl::Enum)
 1124   else if (getDeclKind() == Decl::LinkageSpec || getDeclKind() == Decl::Export)
 1124   else if (getDeclKind() == Decl::LinkageSpec || getDeclKind() == Decl::Export)
 1132   while (DC->getDeclKind() != Decl::TranslationUnit) {
 1133     if (DC->getDeclKind() == Decl::LinkageSpec)
 1146   while (DC->getDeclKind() != Decl::TranslationUnit) {
 1147     if (DC->getDeclKind() == Decl::LinkageSpec &&
 1171   case Decl::TranslationUnit:
 1172   case Decl::ExternCContext:
 1173   case Decl::LinkageSpec:
 1174   case Decl::Export:
 1175   case Decl::Block:
 1176   case Decl::Captured:
 1177   case Decl::OMPDeclareReduction:
 1178   case Decl::OMPDeclareMapper:
 1182   case Decl::Namespace:
 1186   case Decl::ObjCMethod:
 1189   case Decl::ObjCInterface:
 1195   case Decl::ObjCProtocol:
 1201   case Decl::ObjCCategory:
 1204   case Decl::ObjCImplementation:
 1205   case Decl::ObjCCategoryImpl:
 1209     if (getDeclKind() >= Decl::firstTag && getDeclKind() <= Decl::lastTag) {
 1209     if (getDeclKind() >= Decl::firstTag && getDeclKind() <= Decl::lastTag) {
 1240   if (getDeclKind() != Decl::Namespace) {
 1253 std::pair<Decl *, Decl *>
 1253 std::pair<Decl *, Decl *>
 1254 DeclContext::BuildDeclChain(ArrayRef<Decl *> Decls,
 1257   Decl *FirstNewDecl = nullptr;
 1258   Decl *PrevDecl = nullptr;
 1259   for (auto *D : Decls) {
 1297   SmallVector<Decl*, 64> Decls;
 1312   Decl *ExternalFirst, *ExternalLast;
 1398 bool DeclContext::containsDecl(Decl *D) const {
 1403 bool DeclContext::containsDeclAndLoad(Decl *D) const {
 1441 void DeclContext::removeDecl(Decl *D) {
 1454     for (Decl *I = FirstDecl; true; I = I->NextInContextAndBits.getPointer()) {
 1495 void DeclContext::addHiddenDecl(Decl *D) {
 1521 void DeclContext::addDecl(Decl *D) {
 1529 void DeclContext::addDeclInternal(Decl *D) {
 1581   for (auto *D : DCtx->noload_decls()) {
 1623     (void)cast<Decl>(this)->getMostRecentDecl();
 1737   for (Decl *D = FirstDecl; D; D = D->getNextDeclInContext()) {
 1752   bool SkipRecords = getDeclKind() == Decl::Kind::Enum &&
 1849   auto *DCAsDecl = cast<Decl>(this);
 1849   auto *DCAsDecl = cast<Decl>(this);
tools/clang/lib/AST/DeclCXX.cpp
  671 void CXXRecordDecl::addedMember(Decl *D) {
  688   Decl *DUnderlying = D;
 1489 Decl *CXXRecordDecl::getLambdaContextDecl() const {
 1940   case Decl::Kind::CXXConstructor:
 1942   case Decl::Kind::CXXConversion:
 1944   case Decl::Kind::CXXDeductionGuide:
tools/clang/lib/AST/DeclFriend.cpp
   74   Decl *First = data().FirstFriend.get(Source);
tools/clang/lib/AST/DeclGroup.cpp
   20 DeclGroup* DeclGroup::Create(ASTContext &C, Decl **Decls, unsigned NumDecls) {
   22   unsigned Size = totalSizeToAlloc<Decl *>(NumDecls);
   28 DeclGroup::DeclGroup(unsigned numdecls, Decl** decls) : NumDecls(numdecls) {
   32                           getTrailingObjects<Decl *>());
tools/clang/lib/AST/DeclObjC.cpp
  262     case Decl::ObjCProtocol: {
  270     case Decl::ObjCInterface: {
  291     case Decl::ObjCCategory: {
  913   auto *CtxD = cast<Decl>(getDeclContext());
  913   auto *CtxD = cast<Decl>(getDeclContext());
  941   if (Redecl && cast<Decl>(Redecl->getDeclContext())->isInvalidDecl())
  954   auto *CtxD = cast<Decl>(getDeclContext());
  954   auto *CtxD = cast<Decl>(getDeclContext());
tools/clang/lib/AST/DeclPrinter.cpp
   37     void ProcessDeclGroup(SmallVectorImpl<Decl*>& Decls);
   47     void PrintObjCMethodType(ASTContext &Ctx, Decl::ObjCDeclQualifier Quals,
  113     void prettyPrintAttributes(Decl *D);
  114     void prettyPrintPragmas(Decl *D);
  170 static QualType getDeclType(Decl* D) {
  178 void Decl::printGroup(Decl** Begin, unsigned NumDecls,
  186   Decl** End = Begin + NumDecls;
  227 void DeclPrinter::prettyPrintAttributes(Decl *D) {
  249 void DeclPrinter::prettyPrintPragmas(Decl *D) {
  281 void DeclPrinter::ProcessDeclGroup(SmallVectorImpl<Decl*>& Decls) {
  283   Decl::printGroup(Decls.data(), Decls.size(), Out, Policy, Indentation);
  374   SmallVector<Decl*, 2> Decls;
 1037   for (const Decl *Param : *Params) {
 1207                                       Decl::ObjCDeclQualifier Quals,
 1210   if (Quals & Decl::ObjCDeclQualifier::OBJC_TQ_In)
 1212   if (Quals & Decl::ObjCDeclQualifier::OBJC_TQ_Inout)
 1214   if (Quals & Decl::ObjCDeclQualifier::OBJC_TQ_Out)
 1216   if (Quals & Decl::ObjCDeclQualifier::OBJC_TQ_Bycopy)
 1218   if (Quals & Decl::ObjCDeclQualifier::OBJC_TQ_Byref)
 1220   if (Quals & Decl::ObjCDeclQualifier::OBJC_TQ_Oneway)
 1222   if (Quals & Decl::ObjCDeclQualifier::OBJC_TQ_CSNullability) {
tools/clang/lib/AST/DeclTemplate.cpp
  476   Decl *DCanon = D->getCanonicalDecl();
 1080   Decl *DCanon = D->getCanonicalDecl();
tools/clang/lib/AST/Expr.cpp
   72   Decl *D = Ty->getDecl();
  670 std::string PredefinedExpr::ComputeName(IdentKind IK, const Decl *CurrentDecl) {
  709     else if (auto *DCDecl = dyn_cast<Decl>(DC))
  862       if (DC->isFunctionOrMethod() && (DC->getDeclKind() != Decl::Captured)) {
  863         const Decl *D = Decl::castFromDeclContext(DC);
  863         const Decl *D = Decl::castFromDeclContext(DC);
 1440 Decl *Expr::getReferencedDeclOfCallee() {
 1524   const Decl *D = getCalleeDecl();
 2202     const Decl *CurDecl = dyn_cast_or_null<Decl>(Context);
 2202     const Decl *CurDecl = dyn_cast_or_null<Decl>(Context);
 2543     if (const Decl *FD = CE->getCalleeDecl()) {
 2754     const Decl *D = cast<DeclRefExpr>(E)->getDecl();
 3423     const Decl *FD = cast<CallExpr>(this)->getCalleeDecl();
tools/clang/lib/AST/ExprClassification.cpp
   27 static Cl::Kinds ClassifyDecl(ASTContext &Ctx, const Decl *D);
  436 static Cl::Kinds ClassifyDecl(ASTContext &Ctx, const Decl *D) {
tools/clang/lib/AST/ExprConstant.cpp
  418     void addDeclUnchecked(const Decl *D, bool Virtual = false) {
 1571                  const Decl *D, bool Virtual = false) {
 1951     const Decl *ADecl = GetLValueBaseDecl(A);
 1954     const Decl *BDecl = GetLValueBaseDecl(B);
 4312 static bool EvaluateDecl(EvalInfo &Info, const Decl *D) {
 4566       for (const auto *D : DS->decls()) {
 4605     for (const auto *D : DS->decls()) {
 9716   bool CheckReferencedDecl(const Expr *E, const Decl *D);
 9897 bool IntExprEvaluator::CheckReferencedDecl(const Expr* E, const Decl* D) {
tools/clang/lib/AST/ExternalASTMerger.cpp
  108   llvm::DenseMap<Decl *, Decl *> ToOrigin;
  108   llvm::DenseMap<Decl *, Decl *> ToOrigin;
  126   llvm::Expected<Decl *> ImportImpl(Decl *FromD) override {
  126   llvm::Expected<Decl *> ImportImpl(Decl *FromD) override {
  164     Decl *Persistent = SourceMerger->FindOriginalDecl(FromD);
  180     Decl *D = *DeclOrErr;
  189   Decl *GetOriginalDecl(Decl *To) override {
  189   Decl *GetOriginalDecl(Decl *To) override {
  198   void Imported(Decl *From, Decl *To) override {
  198   void Imported(Decl *From, Decl *To) override {
  394   Importer.ASTImporter::MapImported(cast<Decl>(Origin.DC), const_cast<Decl*>(cast<Decl>(ToDC)));
  394   Importer.ASTImporter::MapImported(cast<Decl>(Origin.DC), const_cast<Decl*>(cast<Decl>(ToDC)));
  404 Decl *ExternalASTMerger::FindOriginalDecl(Decl *D) {
  404 Decl *ExternalASTMerger::FindOriginalDecl(Decl *D) {
  467 static bool importSpecializationsIfNeeded(Decl *D, ASTImporter *Importer) {
  510     Decl *LookupRes = C.first.get();
  531     const DeclContext *DC, llvm::function_ref<bool(Decl::Kind)> IsKindWeWant,
  532     SmallVectorImpl<Decl *> &Result) {
  535     for (const Decl *SourceDecl : SourceDC.get()->decls()) {
tools/clang/lib/AST/ExternalASTSource.cpp
   35 ExternalASTSource::hasExternalDefinitions(const Decl *D) {
   56                                             SmallVectorImpl<Decl *> &Decls) {}
   58 void ExternalASTSource::CompleteRedeclChain(const Decl *D) {}
   82 Decl *ExternalASTSource::GetExternalDecl(uint32_t ID) {
  117     const DeclContext *DC, llvm::function_ref<bool(Decl::Kind)> IsKindWeWant,
  118     SmallVectorImpl<Decl *> &Result) {}
tools/clang/lib/AST/Interp/ByteCodeEmitter.h
   59   bool bail(const Decl *D) { return bail(D->getBeginLoc()); }
tools/clang/lib/AST/Interp/ByteCodeExprGen.cpp
  429   if (auto *VD = dyn_cast_or_null<ValueDecl>(Src.dyn_cast<const Decl *>()))
  442   if (auto *VD = dyn_cast_or_null<ValueDecl>(Src.dyn_cast<const Decl *>())) {
tools/clang/lib/AST/Interp/ByteCodeGenError.h
   25   ByteCodeGenError(const Decl *D) : ByteCodeGenError(D->getBeginLoc()) {}
tools/clang/lib/AST/Interp/ByteCodeStmtGen.cpp
  147   for (auto *D : DS->decls()) {
tools/clang/lib/AST/Interp/Descriptor.cpp
  254   if (auto *D = Source.dyn_cast<const Decl *>())
tools/clang/lib/AST/Interp/Descriptor.h
   26 using DeclTy = llvm::PointerUnion<const Decl *, const Expr *>;
  112   const Decl *asDecl() const { return Source.dyn_cast<const Decl *>(); }
  112   const Decl *asDecl() const { return Source.dyn_cast<const Decl *>(); }
tools/clang/lib/AST/Interp/EvalEmitter.h
   61   bool bail(const Decl *D) { return bail(D->getBeginLoc()); }
tools/clang/lib/AST/Interp/Program.cpp
   94   for (const Decl *P = VD; P; P = P->getPreviousDecl()) {
  151     for (const Decl *P = VD; P; P = P->getPreviousDecl())
tools/clang/lib/AST/Interp/Source.cpp
   20   if (const Decl *D = asDecl())
tools/clang/lib/AST/Interp/Source.h
   85   SourceInfo(const Decl *D) : Source(D) {}
   90   const Decl *asDecl() const { return Source.dyn_cast<const Decl *>(); }
   90   const Decl *asDecl() const { return Source.dyn_cast<const Decl *>(); }
   96   llvm::PointerUnion<const Decl *, const Stmt *> Source;
tools/clang/lib/AST/ItaniumMangle.cpp
   41 static const DeclContext *getEffectiveDeclContext(const Decl *D) {
   65     return getEffectiveDeclContext(cast<Decl>(DC));
   80   return getEffectiveDeclContext(cast<Decl>(DC));
   87 static const RecordDecl *GetLocalClassDecl(const Decl *D) {
   92     D = cast<Decl>(DC);
  488   void mangleLocalName(const Decl *D,
 1546 void CXXNameMangler::mangleLocalName(const Decl *D,
 1660   if (Decl *Context = Block->getBlockManglingContextDecl()) {
 1743   if (Decl *Context = Lambda->getLambdaContextDecl()) {
 3561   case Decl::ParmVar:
 3565   case Decl::EnumConstant: {
 3571   case Decl::NonTypeTemplateParm:
tools/clang/lib/AST/JSONNodeDumper.cpp
    7 void JSONNodeDumper::addPreviousDeclaration(const Decl *D) {
   92 void JSONNodeDumper::Visit(const Decl *D) {
  118     const auto *ParentDeclContextDecl = dyn_cast<Decl>(D->getDeclContext());
  118     const auto *ParentDeclContextDecl = dyn_cast<Decl>(D->getDeclContext());
  143                            const Decl *From, StringRef Label) {
  280 void JSONNodeDumper::writeBareDeclRef(const Decl *D) {
  292 llvm::json::Object JSONNodeDumper::createBareDeclRef(const Decl *D) {
tools/clang/lib/AST/Linkage.h
  131   LinkageInfo getLVForClosure(const DeclContext *DC, Decl *ContextDecl,
tools/clang/lib/AST/Mangle.cpp
  302   bool writeName(const Decl *D, raw_ostream &OS) {
  328   std::string getName(const Decl *D) {
  372   std::vector<std::string> getAllManglings(const Decl *D) {
  483 bool ASTNameGenerator::writeName(const Decl *D, raw_ostream &OS) {
  487 std::string ASTNameGenerator::getName(const Decl *D) {
  491 std::vector<std::string> ASTNameGenerator::getAllManglings(const Decl *D) {
tools/clang/lib/AST/MicrosoftMangle.cpp
   71 getLambdaDefaultArgumentDeclContext(const Decl *D) {
   82 static const DeclContext *getEffectiveDeclContext(const Decl *D) {
  102     return getEffectiveDeclContext(cast<Decl>(DC));
  109   return getEffectiveDeclContext(cast<Decl>(DC));
  913           Decl *LambdaContextDecl = Record->getLambdaContextDecl();
 1078       if (const auto *MC = BD->getBlockManglingContextDecl())
 1093       if (const auto *MC = BD->getBlockManglingContextDecl())
tools/clang/lib/AST/ODRHash.cpp
  266   void AddDecl(const Decl *D) {
  277   void Visit(const Decl *D) {
  438 bool ODRHash::isWhitelistedDecl(const Decl *D, const DeclContext *Parent) {
  445     case Decl::AccessSpec:
  446     case Decl::CXXConstructor:
  447     case Decl::CXXDestructor:
  448     case Decl::CXXMethod:
  449     case Decl::EnumConstant: // Only found in EnumDecl's.
  450     case Decl::Field:
  451     case Decl::Friend:
  452     case Decl::FunctionTemplate:
  453     case Decl::StaticAssert:
  454     case Decl::TypeAlias:
  455     case Decl::Typedef:
  456     case Decl::Var:
  461 void ODRHash::AddSubDecl(const Decl *D) {
  483   llvm::SmallVector<const Decl *, 16> Decls;
  484   for (Decl *SubDecl : Record->decls()) {
  584   llvm::SmallVector<const Decl *, 16> Decls;
  585   for (Decl *SubDecl : Function->decls()) {
  610   llvm::SmallVector<const Decl *, 16> Decls;
  611   for (Decl *SubDecl : Enum->decls()) {
  625 void ODRHash::AddDecl(const Decl *D) {
  668   void AddDecl(Decl *D) {
tools/clang/lib/AST/QualTypeNames.cpp
   50     const ASTContext &Ctx, const Decl *decl,
  186 static NestedNameSpecifier *createOuterNNS(const ASTContext &Ctx, const Decl *D,
  265     const ASTContext &Ctx, const Decl *Decl,
  321   Decl *Decl = nullptr;
tools/clang/lib/AST/RawCommentList.cpp
  204                                          const Decl *D) const {
tools/clang/lib/AST/RecordLayoutBuilder.cpp
  759   void InitializeLayout(const Decl *D);
 1256 void ItaniumRecordLayoutBuilder::InitializeLayout(const Decl *D) {
 3125   const Decl *Result =
tools/clang/lib/AST/StmtCXX.cpp
   77   Decl *LV = cast<DeclStmt>(getLoopVarStmt())->getSingleDecl();
tools/clang/lib/AST/StmtIterator.cpp
   74 bool StmtIteratorBase::HandleDecl(Decl* D) {
   99 StmtIteratorBase::StmtIteratorBase(Decl** dgi, Decl** dge)
   99 StmtIteratorBase::StmtIteratorBase(Decl** dgi, Decl** dge)
tools/clang/lib/AST/StmtPrinter.cpp
  125     void PrintRawDecl(Decl *D);
  186 void StmtPrinter::PrintRawDecl(Decl *D) {
  191   SmallVector<Decl *, 2> Decls(S->decls());
  192   Decl::printGroup(Decls.data(), Decls.size(), OS, Policy, IndentLevel);
  515       if (Decl *DS = catchStmt->getCatchParamDecl())
  569   if (Decl *ExDecl = Node->getExceptionDecl())
tools/clang/lib/AST/StmtProfile.cpp
   47     virtual void VisitDecl(const Decl *D) = 0;
   88     void VisitDecl(const Decl *D) override {
  199     void VisitDecl(const Decl *D) override {
  232   for (const auto *D : S->decls())
tools/clang/lib/AST/TextNodeDumper.cpp
   39 static void dumpPreviousDecl(raw_ostream &OS, const Decl *D) {
  100                            const Decl *From, StringRef Label) {
  219 void TextNodeDumper::Visit(const Decl *D) {
  232     OS << " parent " << cast<Decl>(D->getDeclContext());
  405 void TextNodeDumper::dumpBareDeclRef(const Decl *D) {
  450 void TextNodeDumper::dumpDeclRef(const Decl *D, StringRef Label) {
 1406   for (Decl *InitD :
tools/clang/lib/AST/VTableBuilder.cpp
 2866   for (const auto *D : RD->decls()) {
tools/clang/lib/ASTMatchers/ASTMatchFinder.cpp
  106     if (const Decl *D = DynNode.get<Decl>())
  106     if (const Decl *D = DynNode.get<Decl>())
  135   bool TraverseDecl(Decl *DeclNode) {
  224   bool baseTraverse(const Decl &DeclNode) {
  254   bool match(const T &Node) {
  281   bool traverse(const T &Node) {
  282     static_assert(IsBaseType<T>::value,
  383   bool TraverseDecl(Decl *DeclNode);
  486     if (auto *N = Node.get<Decl>()) {
  505   template <typename T> void match(const T &Node) {
  601   void matchDispatch(const Decl *Node) {
  690             return D->getKind() == Decl::TranslationUnit;
  914 bool MatchASTVisitor::TraverseDecl(Decl *DeclNode) {
 1055   if (NodeMatch.canConvertTo<Decl>()) {
 1056     addMatcher(NodeMatch.convertTo<Decl>(), Action);
tools/clang/lib/ASTMatchers/ASTMatchersInternal.cpp
  552 const internal::VariadicDynCastAllOfMatcher<Decl, TranslationUnitDecl>
  554 const internal::VariadicDynCastAllOfMatcher<Decl, TypedefDecl> typedefDecl;
  555 const internal::VariadicDynCastAllOfMatcher<Decl, TypedefNameDecl>
  557 const internal::VariadicDynCastAllOfMatcher<Decl, TypeAliasDecl> typeAliasDecl;
  558 const internal::VariadicDynCastAllOfMatcher<Decl, TypeAliasTemplateDecl>
  560 const internal::VariadicAllOfMatcher<Decl> decl;
  561 const internal::VariadicDynCastAllOfMatcher<Decl, LinkageSpecDecl>
  563 const internal::VariadicDynCastAllOfMatcher<Decl, NamedDecl> namedDecl;
  564 const internal::VariadicDynCastAllOfMatcher<Decl, LabelDecl> labelDecl;
  565 const internal::VariadicDynCastAllOfMatcher<Decl, NamespaceDecl> namespaceDecl;
  566 const internal::VariadicDynCastAllOfMatcher<Decl, NamespaceAliasDecl>
  568 const internal::VariadicDynCastAllOfMatcher<Decl, RecordDecl> recordDecl;
  569 const internal::VariadicDynCastAllOfMatcher<Decl, CXXRecordDecl> cxxRecordDecl;
  570 const internal::VariadicDynCastAllOfMatcher<Decl, ClassTemplateDecl>
  572 const internal::VariadicDynCastAllOfMatcher<Decl,
  576     Decl, ClassTemplatePartialSpecializationDecl>
  578 const internal::VariadicDynCastAllOfMatcher<Decl, DeclaratorDecl>
  580 const internal::VariadicDynCastAllOfMatcher<Decl, ParmVarDecl> parmVarDecl;
  581 const internal::VariadicDynCastAllOfMatcher<Decl, AccessSpecDecl>
  586 const internal::VariadicDynCastAllOfMatcher<Decl, NonTypeTemplateParmDecl>
  588 const internal::VariadicDynCastAllOfMatcher<Decl, TemplateTypeParmDecl>
  595 const internal::VariadicDynCastAllOfMatcher<Decl, ValueDecl> valueDecl;
  596 const internal::VariadicDynCastAllOfMatcher<Decl, CXXConstructorDecl>
  598 const internal::VariadicDynCastAllOfMatcher<Decl, CXXDestructorDecl>
  600 const internal::VariadicDynCastAllOfMatcher<Decl, EnumDecl> enumDecl;
  601 const internal::VariadicDynCastAllOfMatcher<Decl, EnumConstantDecl>
  603 const internal::VariadicDynCastAllOfMatcher<Decl, CXXMethodDecl> cxxMethodDecl;
  604 const internal::VariadicDynCastAllOfMatcher<Decl, CXXConversionDecl>
  606 const internal::VariadicDynCastAllOfMatcher<Decl, VarDecl> varDecl;
  607 const internal::VariadicDynCastAllOfMatcher<Decl, FieldDecl> fieldDecl;
  608 const internal::VariadicDynCastAllOfMatcher<Decl, IndirectFieldDecl>
  610 const internal::VariadicDynCastAllOfMatcher<Decl, FunctionDecl> functionDecl;
  611 const internal::VariadicDynCastAllOfMatcher<Decl, FunctionTemplateDecl>
  613 const internal::VariadicDynCastAllOfMatcher<Decl, FriendDecl> friendDecl;
  627 const internal::VariadicDynCastAllOfMatcher<Decl, ObjCInterfaceDecl>
  629 const internal::VariadicDynCastAllOfMatcher<Decl, ObjCImplementationDecl>
  631 const internal::VariadicDynCastAllOfMatcher<Decl, ObjCProtocolDecl>
  633 const internal::VariadicDynCastAllOfMatcher<Decl, ObjCCategoryDecl>
  635 const internal::VariadicDynCastAllOfMatcher<Decl, ObjCCategoryImplDecl>
  637 const internal::VariadicDynCastAllOfMatcher<Decl, ObjCMethodDecl>
  639 const internal::VariadicDynCastAllOfMatcher<Decl, BlockDecl>
  641 const internal::VariadicDynCastAllOfMatcher<Decl, ObjCIvarDecl> objcIvarDecl;
  642 const internal::VariadicDynCastAllOfMatcher<Decl, ObjCPropertyDecl>
  661 const internal::VariadicDynCastAllOfMatcher<Decl, UsingDecl> usingDecl;
  662 const internal::VariadicDynCastAllOfMatcher<Decl, UsingDirectiveDecl>
  666 const internal::VariadicDynCastAllOfMatcher<Decl, UnresolvedUsingValueDecl>
  668 const internal::VariadicDynCastAllOfMatcher<Decl, UnresolvedUsingTypenameDecl>
  743 const internal::VariadicDynCastAllOfMatcher<Decl, StaticAssertDecl>
  852 const internal::VariadicDynCastAllOfMatcher<Decl, CXXDeductionGuideDecl>
tools/clang/lib/ASTMatchers/Dynamic/Marshallers.h
   75     return Value.isMatcher() && Value.getMatcher().hasTypedMatcher<T>();
   78   static ast_matchers::internal::Matcher<T> get(const VariantValue &Value) {
   79     return Value.getMatcher().getTypedMatcher<T>();
   83     return ArgKind(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  361     RetTypes.push_back(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  368     RetTypes.push_back(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  466       ast_matchers::internal::VariadicDynCastAllOfMatcher<BaseT, DerivedT> Func,
  778     ast_matchers::internal::VariadicDynCastAllOfMatcher<BaseT, DerivedT>
tools/clang/lib/ASTMatchers/Dynamic/Registry.cpp
  559       ASTNodeKind::getFromNodeKind<Decl>(),
tools/clang/lib/Analysis/AnalysisDeclContext.cpp
   56                                          const Decl *d,
   63                                          const Decl *d)
  295 AnalysisDeclContext *AnalysisDeclContextManager::getContext(const Decl *D) {
  327 bool AnalysisDeclContext::isInStdNamespace(const Decl *D) {
  506       if (const Decl *D = cast<BlockInvocationContext>(LCtx)->getDecl()) {
  556       if (const Decl *D = cast<BlockInvocationContext>(LCtx)->getDecl()) {
tools/clang/lib/Analysis/CFG.cpp
   66 static SourceLocation GetEndLoc(Decl *D) {
  539   std::unique_ptr<CFG> buildCFG(const Decl *D, Stmt *Statement);
 1479 std::unique_ptr<CFG> CFGBuilder::buildCFG(const Decl *D, Stmt *Statement) {
 1968   for (auto *DI : DS->decls())
 2796     Decl *D = *I;
 4897 std::unique_ptr<CFG> CFG::buildCFG(const Decl *D, Stmt *Statement,
 5064   using DeclMapTy = llvm::DenseMap<const Decl *, std::pair<unsigned, unsigned>>;
 5152   bool handleDecl(const Decl *D, raw_ostream &OS) {
tools/clang/lib/Analysis/CallGraph.cpp
   55   Decl *getDeclFromCall(CallExpr *CE) {
   69   void addCalledDecl(Decl *D) {
   77     if (Decl *D = getDeclFromCall(CE))
  119       Decl *D = nullptr;
  144   for (auto *I : D->decls())
  155 bool CallGraph::includeInGraph(const Decl *D) {
  174 void CallGraph::addNodeForDecl(Decl* D, bool IsGlobal) {
  193 CallGraphNode *CallGraph::getNode(const Decl *F) const {
  199 CallGraphNode *CallGraph::getOrInsertNode(Decl *F) {
tools/clang/lib/Analysis/CloneDetection.cpp
   22 StmtSequence::StmtSequence(const CompoundStmt *Stmt, const Decl *D,
   30 StmtSequence::StmtSequence(const Stmt *Stmt, const Decl *D)
   89 void CloneDetector::analyzeCodeBody(const Decl *D) {
  249 saveHash(const Stmt *S, const Decl *D,
tools/clang/lib/Analysis/Consumed.cpp
  839   for (const auto *DI : DeclS->decls())
tools/clang/lib/Analysis/ExprMutationAnalyzer.cpp
   87   const StringRef ID = NodeID<T>::value;
   89     if (const Stmt *S = (Analyzer->*Finder)(Nodes.getNodeAs<T>(ID)))
  109 const Stmt *ExprMutationAnalyzer::findMutation(const Decl *Dec) {
  117 const Stmt *ExprMutationAnalyzer::findPointeeMutation(const Decl *Dec) {
  139 const Stmt *ExprMutationAnalyzer::tryEachDeclRef(const Decl *Dec,
  190   return tryEachMatch<Decl>(Matches, this, &ExprMutationAnalyzer::findMutation);
  201   return tryEachMatch<Decl>(Matches, this,
  344                                     .bind(NodeID<Decl>::value)),
  379               .bind(NodeID<Decl>::value))),
tools/clang/lib/Analysis/LiveVariables.cpp
  381       const Decl* D = DR->getDecl();
  411   const Decl* D = DR->getDecl();
  423   for (const auto *DI : DS->decls()) {
  488     const Decl *D = DR->getDecl();
tools/clang/lib/Analysis/PathDiagnostic.cpp
  120     StringRef CheckerName, const Decl *declWithIssue, StringRef bugtype,
  122     PathDiagnosticLocation LocationToUnique, const Decl *DeclToUnique,
  360     const Decl *XD = X.getDeclWithIssue();
  363     const Decl *YD = Y.getDeclWithIssue();
  564 PathDiagnosticLocation::createBegin(const Decl *D,
  833   const Decl *caller = CE.getLocationContext()->getDecl();
  843                                    const Decl *caller) {
  917 static bool describeCodeDecl(raw_ostream &Out, const Decl *D,
tools/clang/lib/Analysis/RetainSummaryManager.cpp
   68 Optional<ObjKind> RetainSummaryManager::hasAnyEnabledAttrOf(const Decl *D,
  109 Optional<ObjKind> RetainSummaryManager::hasAnyEnabledAttrOf(const Decl *D,
  140 static bool isSubclass(const Decl *D,
  147 static bool isOSObjectSubclass(const Decl *D) {
  172 static bool isOSIteratorSubclass(const Decl *D) {
  176 static bool hasRCAnnotation(const Decl *D, StringRef rcAnnotation) {
  708     const Decl *FD) {
  860                                                   const Decl *D) {
tools/clang/lib/Analysis/ThreadSafety.cpp
  610   for (const auto *D : DGrp) {
 2135   for (auto *D : S->getDeclGroup()) {
tools/clang/lib/Analysis/ThreadSafetyCommon.cpp
  282       const Decl *Canonical = Ctx->AttrDecl->getCanonicalDecl();
tools/clang/lib/Analysis/UninitializedValues.cpp
  432   for (auto *DI : DS->decls()) {
  742   if (Decl *Callee = ce->getCalleeDecl()) {
  789   for (auto *DI : DS->decls()) {
tools/clang/lib/CodeGen/Address.h
  108 template <class U> inline U cast(CodeGen::Address addr) {
tools/clang/lib/CodeGen/CGBuiltin.cpp
 1482                               llvm::SmallPtrSetImpl<const Decl *> &Seen) {
 1512   llvm::SmallPtrSet<const Decl *, 16> Seen;
tools/clang/lib/CodeGen/CGCUDANV.cpp
   47     const Decl *D;
  120   std::string getDeviceSideName(const Decl *ND);
  207 std::string CGNVCUDARuntime::getDeviceSideName(const Decl *D) {
tools/clang/lib/CodeGen/CGCall.cpp
  199 static CallingConv getCallingConventionForDecl(const Decl *D, bool IsWindows) {
 1835   const Decl *TargetDecl = CalleeInfo.getCalleeDecl().getDecl();
 2184 static const NonNullAttr *getNonNullAttr(const Decl *FD, const ParmVarDecl *PVD,
 3796   const Decl *TargetDecl = Callee.getAbstractInfo().getCalleeDecl().getDecl();
tools/clang/lib/CodeGen/CGDebugInfo.cpp
   61 static uint32_t getDeclAlignIfRequired(const Decl *D, const ASTContext &Ctx) {
  199 llvm::DIScope *CGDebugInfo::getDeclContextDescriptor(const Decl *D) {
  201   return getContextDescriptor(cast<Decl>(D->getDeclContext()),
  205 llvm::DIScope *CGDebugInfo::getContextDescriptor(const Decl *Context,
 1423     for (const auto *I : record->decls())
 1651   for (const auto *I : RD->decls()) {
 2964 llvm::DIModule *CGDebugInfo::getParentModuleOrNull(const Decl *D) {
 3320   VDContext = getContextDescriptor(cast<Decl>(DC), Mod ? Mod : TheCU);
 3401 llvm::DINode *CGDebugInfo::getDeclarationOrDefinition(const Decl *D) {
 3428 llvm::DISubprogram *CGDebugInfo::getFunctionDeclaration(const Decl *D) {
 3465 llvm::DISubroutineType *CGDebugInfo::getOrCreateFunctionType(const Decl *D,
 3545   const Decl *D = GD.getDecl();
 3663   const Decl *D = GD.getDecl();
 3915       VD->isImplicit() || (isa<Decl>(VD->getDeclContext()) &&
 3916                            cast<Decl>(VD->getDeclContext())->isImplicit());
 4500         cast<Decl>(CGM.getContext().getTranslationUnitDecl()), TheCU);
 4533 llvm::DIScope *CGDebugInfo::getCurrentContextDescriptor(const Decl *D) {
 4548         getCurrentContextDescriptor(cast<Decl>(UD.getDeclContext())),
 4575         getCurrentContextDescriptor(cast<Decl>(USD.getDeclContext())), Target,
 4587         getCurrentContextDescriptor(cast<Decl>(ID.getDeclContext())),
 4606         getCurrentContextDescriptor(cast<Decl>(NA.getDeclContext())),
 4611         getCurrentContextDescriptor(cast<Decl>(NA.getDeclContext())),
tools/clang/lib/CodeGen/CGDebugInfo.h
  124   llvm::DenseMap<const Decl *, llvm::TrackingMDRef> RegionMap;
  143   llvm::DenseMap<const Decl *, llvm::TrackingMDRef> DeclCache;
  147   llvm::DenseMap<const Decl *, llvm::TypedTrackingMDRef<llvm::DIDerivedType>>
  210   getOrCreateFunctionType(const Decl *D, QualType FnType, llvm::DIFile *F);
  538   llvm::DIScope *getDeclContextDescriptor(const Decl *D);
  540   llvm::DIScope *getContextDescriptor(const Decl *Context,
  543   llvm::DIScope *getCurrentContextDescriptor(const Decl *Decl);
  582   llvm::DIModule *getParentModuleOrNull(const Decl *D);
  598   llvm::DINode *getDeclarationOrDefinition(const Decl *D);
  602   llvm::DISubprogram *getFunctionDeclaration(const Decl *D);
tools/clang/lib/CodeGen/CGDecl.cpp
   42 void CodeGenFunction::EmitDecl(const Decl &D) {
   44   case Decl::BuiltinTemplate:
   45   case Decl::TranslationUnit:
   46   case Decl::ExternCContext:
   47   case Decl::Namespace:
   48   case Decl::UnresolvedUsingTypename:
   49   case Decl::ClassTemplateSpecialization:
   50   case Decl::ClassTemplatePartialSpecialization:
   51   case Decl::VarTemplateSpecialization:
   52   case Decl::VarTemplatePartialSpecialization:
   53   case Decl::TemplateTypeParm:
   54   case Decl::UnresolvedUsingValue:
   55   case Decl::NonTypeTemplateParm:
   56   case Decl::CXXDeductionGuide:
   57   case Decl::CXXMethod:
   58   case Decl::CXXConstructor:
   59   case Decl::CXXDestructor:
   60   case Decl::CXXConversion:
   61   case Decl::Field:
   62   case Decl::MSProperty:
   63   case Decl::IndirectField:
   64   case Decl::ObjCIvar:
   65   case Decl::ObjCAtDefsField:
   66   case Decl::ParmVar:
   67   case Decl::ImplicitParam:
   68   case Decl::ClassTemplate:
   69   case Decl::VarTemplate:
   70   case Decl::FunctionTemplate:
   71   case Decl::TypeAliasTemplate:
   72   case Decl::TemplateTemplateParm:
   73   case Decl::ObjCMethod:
   74   case Decl::ObjCCategory:
   75   case Decl::ObjCProtocol:
   76   case Decl::ObjCInterface:
   77   case Decl::ObjCCategoryImpl:
   78   case Decl::ObjCImplementation:
   79   case Decl::ObjCProperty:
   80   case Decl::ObjCCompatibleAlias:
   81   case Decl::PragmaComment:
   82   case Decl::PragmaDetectMismatch:
   83   case Decl::AccessSpec:
   84   case Decl::LinkageSpec:
   85   case Decl::Export:
   86   case Decl::ObjCPropertyImpl:
   87   case Decl::FileScopeAsm:
   88   case Decl::Friend:
   89   case Decl::FriendTemplate:
   90   case Decl::Block:
   91   case Decl::Captured:
   92   case Decl::ClassScopeFunctionSpecialization:
   93   case Decl::UsingShadow:
   94   case Decl::ConstructorUsingShadow:
   95   case Decl::ObjCTypeParam:
   96   case Decl::Binding:
   98   case Decl::Function:  // void X();
   99   case Decl::Record:    // struct/union/class X;
  100   case Decl::Enum:      // enum X;
  101   case Decl::EnumConstant: // enum ? { X = ? }
  102   case Decl::CXXRecord: // struct/union/class X; [C++]
  103   case Decl::StaticAssert: // static_assert(X, ""); [C++0x]
  104   case Decl::Label:        // __label__ x;
  105   case Decl::Import:
  106   case Decl::OMPThreadPrivate:
  107   case Decl::OMPAllocate:
  108   case Decl::OMPCapturedExpr:
  109   case Decl::OMPRequires:
  110   case Decl::Empty:
  111   case Decl::Concept:
  115   case Decl::NamespaceAlias:
  119   case Decl::Using:          // using X; [C++]
  123   case Decl::UsingPack:
  127   case Decl::UsingDirective: // using namespace X; [C++]
  131   case Decl::Var:
  132   case Decl::Decomposition: {
  144   case Decl::OMPDeclareReduction:
  147   case Decl::OMPDeclareMapper:
  150   case Decl::Typedef:      // typedef int X;
  151   case Decl::TypeAlias: {  // using X = int; [C++0x]
  276   const Decl *DC = cast<Decl>(D.getDeclContext());
  276   const Decl *DC = cast<Decl>(D.getDeclContext());
 1623           for (const auto *I : DS->decls()) {
tools/clang/lib/CodeGen/CGException.cpp
  230   const auto *FD = CGF.CurCodeDecl;
  444 void CodeGenFunction::EmitStartEHSpec(const Decl *D) {
  521 void CodeGenFunction::EmitEndEHSpec(const Decl *D) {
tools/clang/lib/CodeGen/CGExpr.cpp
 4780   const Decl *TargetDecl =
tools/clang/lib/CodeGen/CGObjCGNU.cpp
  234                                              const Decl *Container) {
  298             const Decl *OCD,
  466   llvm::Constant *GeneratePropertyList(const Decl *Container,
 1116             const Decl *OCD,
 1831         Context.getObjCEncodingForMethodParameter(Decl::OBJC_TQ_None, ivarTy, TypeStr, true);
 3277 llvm::Constant *CGObjCGNU::GeneratePropertyList(const Decl *Container,
tools/clang/lib/CodeGen/CGObjCMac.cpp
  947                                         const Decl *Container);
 1011                                    const Decl *Container,
 3243                                        const Decl *Container,
 5537                                        const Decl *Container) {
tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp
 6749               for (const auto *I : PreInit->decls()) {
 6774           for (const auto *I : PreInit->decls()) {
 6847           for (const auto *I : PreInit->decls()) {
10674   llvm::DenseMap<const Decl *, unsigned> ParamPositions;
10929 void CGOpenMPRuntime::emitFunctionProlog(CodeGenFunction &CGF, const Decl *D) {
tools/clang/lib/CodeGen/CGOpenMPRuntime.h
 1633   virtual void emitFunctionProlog(CodeGenFunction &CGF, const Decl *D);
tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp
  314   llvm::SmallPtrSet<const Decl *, 4> EscapedParameters;
  407               const Decl *D =
  448     for (const Decl *D : S->decls())
  608   const llvm::SmallPtrSetImpl<const Decl *> &getEscapedParameters() const {
 4657                                               const Decl *D) {
tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.h
  360   void emitFunctionProlog(CodeGenFunction &CGF, const Decl *D) override;
  452   using DeclToAddrMapTy = llvm::MapVector<const Decl *, MappedVarData>;
  454   using EscapedParamsTy = llvm::SmallPtrSet<const Decl *, 4>;
  495   std::pair<const Decl *, llvm::SmallVector<const ValueDecl *, 4>>
tools/clang/lib/CodeGen/CGStmt.cpp
 1143   for (const auto *I : S.decls())
tools/clang/lib/CodeGen/CGStmtOpenMP.cpp
   33           for (const auto *I : PreInit->decls()) {
  164       for (const auto *I : PreInits->decls())
  195           for (const auto *I : PreInit->decls()) {
  207           const Decl *D = cast<DeclRefExpr>(E)->getDecl();
  385     llvm::MapVector<const Decl *, std::pair<const VarDecl *, Address>>
  387     llvm::DenseMap<const Decl *, std::pair<const Expr *, llvm::Value *>>
  567   llvm::MapVector<const Decl *, std::pair<const VarDecl *, Address>> LocalAddrs;
  568   llvm::DenseMap<const Decl *, std::pair<const Expr *, llvm::Value *>> VLASizes;
tools/clang/lib/CodeGen/CGVTables.cpp
 1027       auto *D = cast<Decl>(DC);
tools/clang/lib/CodeGen/CodeGenAction.cpp
  550   if (const Decl *ND = Gen->GetDeclForMangledName(D.getFunction().getName())) {
  554       << static_cast<uint32_t>(D.getStackSize()) << Decl::castToDeclContext(ND);
  588     if (const Decl *FD = Gen->GetDeclForMangledName(D.getFunction().getName()))
tools/clang/lib/CodeGen/CodeGenFunction.cpp
  587 static bool endsWithReturn(const Decl* F) {
  609 static bool matchesStlAllocatorFn(const Decl *D, const ASTContext &Ctx) {
  648   const Decl *D = GD.getDecl();
tools/clang/lib/CodeGen/CodeGenFunction.h
  295   const Decl *CurFuncDecl;
  297   const Decl *CurCodeDecl;
  430     const Decl *CalleeDecl;
  439     const Decl *getDecl() const { return CalleeDecl; }
  820   typedef llvm::DenseMap<const Decl *, Address> DeclMapTy;
 1518     const Decl *OldCurFuncDecl;
 1519     const Decl *OldCurCodeDecl;
 2019   void EmitStartEHSpec(const Decl *D);
 2022   void EmitEndEHSpec(const Decl *D);
 2667   void EmitDecl(const Decl &D);
tools/clang/lib/CodeGen/CodeGenModule.cpp
  745 void CodeGenModule::ErrorUnsupported(const Decl *D, const char *Type) {
 1108   const Decl *D = GD.getDecl();
 1400         const Decl *PDecl = parm;
 1480 void CodeGenModule::SetLLVMFunctionAttributesForDefinition(const Decl *D,
 1639   const Decl *D = GD.getDecl();
 1707   const Decl *D = GD.getDecl();
 1750   const Decl *D = GD.getDecl();
 2710       for (const Decl *Member : Dtor->getParent()->decls())
 3083   const Decl *D = GD.getDecl();
 3594   const Decl *D = GD.getDecl();
 3819 static bool shouldBeInCOMDAT(CodeGenModule &CGM, const Decl &D) {
 3849 void CodeGenModule::maybeSetTrivialComdat(const Decl &D,
 5205   for (auto *I : DC->decls()) {
 5221 void CodeGenModule::EmitTopLevelDecl(Decl *D) {
 5227   case Decl::CXXConversion:
 5228   case Decl::CXXMethod:
 5229   case Decl::Function:
 5236   case Decl::CXXDeductionGuide:
 5240   case Decl::Var:
 5241   case Decl::Decomposition:
 5242   case Decl::VarTemplateSpecialization:
 5252   case Decl::IndirectField:
 5256   case Decl::Namespace:
 5259   case Decl::ClassTemplateSpecialization: {
 5266   case Decl::CXXRecord:
 5273     for (auto *I : cast<CXXRecordDecl>(D)->decls())
 5278   case Decl::UsingShadow:
 5279   case Decl::ClassTemplate:
 5280   case Decl::VarTemplate:
 5281   case Decl::Concept:
 5282   case Decl::VarTemplatePartialSpecialization:
 5283   case Decl::FunctionTemplate:
 5284   case Decl::TypeAliasTemplate:
 5285   case Decl::Block:
 5286   case Decl::Empty:
 5287   case Decl::Binding:
 5289   case Decl::Using:          // using X; [C++]
 5293   case Decl::NamespaceAlias:
 5297   case Decl::UsingDirective: // using namespace X; [C++]
 5301   case Decl::CXXConstructor:
 5304   case Decl::CXXDestructor:
 5308   case Decl::StaticAssert:
 5315   case Decl::ObjCInterface:
 5316   case Decl::ObjCCategory:
 5319   case Decl::ObjCProtocol: {
 5326   case Decl::ObjCCategoryImpl:
 5332   case Decl::ObjCImplementation: {
 5344   case Decl::ObjCMethod: {
 5351   case Decl::ObjCCompatibleAlias:
 5355   case Decl::PragmaComment: {
 5374   case Decl::PragmaDetectMismatch: {
 5380   case Decl::LinkageSpec:
 5384   case Decl::FileScopeAsm: {
 5396   case Decl::Import: {
 5420       for (auto *D : Context.getModuleInitializers(Mod))
 5439   case Decl::Export:
 5443   case Decl::OMPThreadPrivate:
 5447   case Decl::OMPAllocate:
 5450   case Decl::OMPDeclareReduction:
 5454   case Decl::OMPDeclareMapper:
 5458   case Decl::OMPRequires:
 5471 void CodeGenModule::AddDeferredUnusedCoverageMapping(Decl *D) {
 5476   case Decl::CXXConversion:
 5477   case Decl::CXXMethod:
 5478   case Decl::Function:
 5479   case Decl::ObjCMethod:
 5480   case Decl::CXXConstructor:
 5481   case Decl::CXXDestructor: {
 5497 void CodeGenModule::ClearUnusedCoverageMapping(const Decl *D) {
 5520     const Decl *D = Entry.first;
 5522     case Decl::CXXConversion:
 5523     case Decl::CXXMethod:
 5524     case Decl::Function:
 5525     case Decl::ObjCMethod: {
 5532     case Decl::CXXConstructor: {
 5539     case Decl::CXXDestructor: {
 5632     const Decl *D = I.first;
 5675     const Decl *D = Val.first.getDecl()->getMostRecentDecl();
tools/clang/lib/CodeGen/CodeGenModule.h
  414   llvm::DenseMap<const Decl*, llvm::Constant *> StaticLocalDeclMap;
  415   llvm::DenseMap<const Decl*, llvm::GlobalVariable*> StaticLocalDeclGuardMap;
  446   llvm::DenseMap<const Decl*, unsigned> DelayedCXXInitPosition;
  538   llvm::MapVector<const Decl *, bool> DeferredEmptyCoverageMappingDecls;
  682   void maybeSetTrivialComdat(const Decl &D, llvm::GlobalObject &GO);
  994   void EmitTopLevelDecl(Decl *D);
  998   void AddDeferredUnusedCoverageMapping(Decl *D);
 1002   void ClearUnusedCoverageMapping(const Decl *D);
 1090   void ErrorUnsupported(const Decl *D, const char *Type);
 1104   void SetLLVMFunctionAttributesForDefinition(const Decl *D, llvm::Function *F);
tools/clang/lib/CodeGen/CodeGenPGO.cpp
  175   bool VisitDecl(const Decl *D) {
  179     case Decl::Function:
  180     case Decl::CXXMethod:
  181     case Decl::CXXConstructor:
  182     case Decl::CXXDestructor:
  183     case Decl::CXXConversion:
  184     case Decl::ObjCMethod:
  185     case Decl::Block:
  186     case Decl::Captured:
  760   const Decl *D = GD.getDecl();
  796 void CodeGenPGO::mapRegionCounters(const Decl *D) {
  818 bool CodeGenPGO::skipRegionMappingForDecl(const Decl *D) {
  828 void CodeGenPGO::emitCounterRegionMapping(const Decl *D) {
  848 CodeGenPGO::emitEmptyCounterMapping(const Decl *D, StringRef Name,
  869 void CodeGenPGO::computeRegionCounts(const Decl *D) {
tools/clang/lib/CodeGen/CodeGenPGO.h
   85   void emitEmptyCounterMapping(const Decl *D, StringRef FuncName,
   93   void mapRegionCounters(const Decl *D);
   94   void computeRegionCounts(const Decl *D);
   99   bool skipRegionMappingForDecl(const Decl *D);
  100   void emitCounterRegionMapping(const Decl *D);
tools/clang/lib/CodeGen/CoverageMappingGen.cpp
  389   void VisitDecl(const Decl *D) {
  870   void VisitDecl(const Decl *D) {
 1471 void CoverageMappingGen::emitCounterMapping(const Decl *D,
 1479 void CoverageMappingGen::emitEmptyMapping(const Decl *D,
tools/clang/lib/CodeGen/CoverageMappingGen.h
  103   void emitCounterMapping(const Decl *D, llvm::raw_ostream &OS);
  107   void emitEmptyMapping(const Decl *D, llvm::raw_ostream &OS);
tools/clang/lib/CodeGen/ModuleBuilder.cpp
  110     const Decl *GetDeclForMangledName(StringRef MangledName) {
  114       const Decl *D = Result.getCanonicalDecl().getDecl();
  228         for (Decl *Member : D->decls()) {
  239         for (Decl *Member : D->decls()) {
  320 const Decl *CodeGenerator::GetDeclForMangledName(llvm::StringRef name) {
tools/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp
  186     for (auto *I : D)
tools/clang/lib/CodeGen/TargetInfo.cpp
  765   void setTargetAttributes(const Decl *D, llvm::GlobalValue *GV,
 1113   void setTargetAttributes(const Decl *D, llvm::GlobalValue *GV,
 1981     const Decl *D, llvm::GlobalValue *GV, CodeGen::CodeGenModule &CGM) const {
 2352   void setTargetAttributes(const Decl *D, llvm::GlobalValue *GV,
 2390   void setTargetAttributes(const Decl *D, llvm::GlobalValue *GV,
 2406 static void addStackProbeTargetAttributes(const Decl *D, llvm::GlobalValue *GV,
 2419     const Decl *D, llvm::GlobalValue *GV, CodeGen::CodeGenModule &CGM) const {
 2432   void setTargetAttributes(const Decl *D, llvm::GlobalValue *GV,
 2463     const Decl *D, llvm::GlobalValue *GV, CodeGen::CodeGenModule &CGM) const {
 5053   void setTargetAttributes(const Decl *D, llvm::GlobalValue *GV,
 5084   void setTargetAttributes(const Decl *D, llvm::GlobalValue *GV,
 5099     const Decl *D, llvm::GlobalValue *GV, CodeGen::CodeGenModule &CGM) const {
 5707   void setTargetAttributes(const Decl *D, llvm::GlobalValue *GV,
 5751   void setTargetAttributes(const Decl *D, llvm::GlobalValue *GV,
 5766     const Decl *D, llvm::GlobalValue *GV, CodeGen::CodeGenModule &CGM) const {
 6357   void setTargetAttributes(const Decl *D, llvm::GlobalValue *GV,
 6463     const Decl *D, llvm::GlobalValue *GV, CodeGen::CodeGenModule &M) const {
 6900   void setTargetAttributes(const Decl *D, llvm::GlobalValue *GV,
 6907     const Decl *D, llvm::GlobalValue *GV, CodeGen::CodeGenModule &M) const {
 6965   void setTargetAttributes(const Decl *D, llvm::GlobalValue *GV,
 7346   void setTargetAttributes(const Decl *D, llvm::GlobalValue *GV,
 7376   void setTargetAttributes(const Decl *D, llvm::GlobalValue *GV,
 7381     const Decl *D, llvm::GlobalValue *GV, CodeGen::CodeGenModule &M) const {
 7893   void setTargetAttributes(const Decl *D, llvm::GlobalValue *GV,
 7919 static bool requiresAMDGPUProtectedVisibility(const Decl *D,
 7931 static bool requiresAMDGPUDefaultVisibility(const Decl *D,
 7940     const Decl *D, llvm::GlobalValue *GV, CodeGen::CodeGenModule &M) const {
 8703   void emitTargetMD(const Decl *D, llvm::GlobalValue *GV,
 8868 void XCoreTargetCodeGenInfo::emitTargetMD(const Decl *D, llvm::GlobalValue *GV,
 9670   void setTargetAttributes(const Decl *D, llvm::GlobalValue *GV,
tools/clang/lib/CodeGen/TargetInfo.h
   58   virtual void setTargetAttributes(const Decl *D, llvm::GlobalValue *GV,
   63   virtual void emitTargetMD(const Decl *D, llvm::GlobalValue *GV,
tools/clang/lib/CodeGen/VarBypassDetector.cpp
   34 bool VarBypassDetector::BuildScopeInformation(const Decl *D,
   88     for (auto *I : DS->decls())
tools/clang/lib/CodeGen/VarBypassDetector.h
   62   bool BuildScopeInformation(const Decl *D, unsigned &ParentScope);
tools/clang/lib/CrossTU/CrossTranslationUnit.cpp
  211   for (const Decl *D : DC->decls()) {
tools/clang/lib/Frontend/ASTConsumers.cpp
   55     bool TraverseDecl(Decl *D) {
   73     std::string getName(Decl *D) {
   78     bool filterMatches(Decl *D) {
   81     void print(Decl *D) {
  179     void HandleTopLevelSingleDecl(Decl *D);
  183 void ASTViewer::HandleTopLevelSingleDecl(Decl *D) {
tools/clang/lib/Frontend/ASTMerge.cpp
   61     for (auto *D : TU->decls()) {
   68       llvm::Expected<Decl *> ToDOrError = Importer.Import(D);
tools/clang/lib/Frontend/ASTUnit.cpp
  895 static void AddTopLevelDeclarationToHash(Decl *D, unsigned &Hash) {
  948   void handleTopLevelDecl(Decl *D) {
  965   void handleFileLevelDecl(Decl *D) {
  968       for (auto *I : NSD->decls())
  974     for (auto *TopLevelDecl : D)
  983     for (auto *TopLevelDecl : D)
 1023   std::vector<Decl *> takeTopLevelDecls() { return std::move(TopLevelDecls); }
 1031     for (const auto *D : TopLevelDecls) {
 1040     for (auto *D : DG) {
 1058   std::vector<Decl *> TopLevelDecls;
 1432   std::vector<Decl *> Resolved;
 1438     if (Decl *D = Source.GetExternalDecl(TopLevelDecl))
 2025       Hiding = (IDNS & Decl::IDNS_Tag);
 2027       unsigned HiddenIDNS = (Decl::IDNS_Type | Decl::IDNS_Member |
 2027       unsigned HiddenIDNS = (Decl::IDNS_Type | Decl::IDNS_Member |
 2028                              Decl::IDNS_Namespace | Decl::IDNS_Ordinary |
 2028                              Decl::IDNS_Namespace | Decl::IDNS_Ordinary |
 2029                              Decl::IDNS_NonMemberOperator);
 2031         HiddenIDNS |= Decl::IDNS_Tag;
 2411 void ASTUnit::addFileLevelDecl(Decl *D) {
 2439   std::pair<unsigned, Decl *> LocDecl(Offset, D);
 2453                                   SmallVectorImpl<Decl *> &Decls) {
 2614     for (const auto *D : Reader->getModuleFileLevelDecls(Mod)) {
tools/clang/lib/Frontend/FrontendAction.cpp
   68   void DeclRead(serialization::DeclID ID, const Decl *D) override {
   90   void DeclRead(serialization::DeclID ID, const Decl *D) override {
  116   void DeclRead(serialization::DeclID ID, const Decl *D) override {
tools/clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp
  140     for (const auto *D : Decls)
  163     case Decl::Kind::Namespace:
  166     case Decl::Kind::CXXRecord:
  169     case Decl::Kind::ClassTemplateSpecialization:
  173     case Decl::Kind::ClassTemplate:
  176     case Decl::Kind::FunctionTemplate:
  180     case Decl::Kind::Record:
  181     case Decl::Kind::Typedef:
  182     case Decl::Kind::Enum:
  183     case Decl::Kind::EnumConstant:
  184     case Decl::Kind::TemplateTypeParm:
  186     case Decl::Kind::Var:
  187     case Decl::Kind::ParmVar:
  188     case Decl::Kind::CXXMethod:
  189     case Decl::Kind::CXXConstructor:
  190     case Decl::Kind::CXXDestructor:
  191     case Decl::Kind::Function:
  192     case Decl::Kind::Field:
tools/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp
  240     void HandleTopLevelSingleDecl(Decl *D);
  241     void HandleDeclInMainFile(Decl *D);
  311     void RewriteLineDirective(const Decl *D);
  315     void RewriteForwardClassDecl(const SmallVectorImpl<Decl *> &DG);
  323     void RewriteImplementationDecl(Decl *Dcl);
  333     void RewriteForwardProtocolDecl(const SmallVectorImpl<Decl *> &DG);
  340     void RewriteObjCQualifiedInterfaceTypes(Decl *Dcl);
  715 void RewriteModernObjC::HandleTopLevelSingleDecl(Decl *D) {
  749           SmallVector<Decl *, 8> DG;
  774           SmallVector<Decl *, 8> DG;
 1089                                 const SmallVectorImpl<Decl *> &D) {
 1196 RewriteModernObjC::RewriteForwardProtocolDecl(const SmallVectorImpl<Decl *> &DG) {
 1331 void RewriteModernObjC::RewriteImplementationDecl(Decl *OID) {
 2189 void RewriteModernObjC::RewriteObjCQualifiedInterfaceTypes(Decl *Dcl) {
 3047 void RewriteModernObjC::RewriteLineDirective(const Decl *D) {
 5584       Decl *SD = *DI;
 5678 void RewriteModernObjC::HandleDeclInMainFile(Decl *D) {
 5680     case Decl::Function: {
 5713     case Decl::ObjCMethod: {
 5732     case Decl::ObjCImplementation: {
 5737     case Decl::ObjCCategoryImpl: {
 5742     case Decl::Var: {
 5778     case Decl::TypeAlias:
 5779     case Decl::Typedef: {
 5790     case Decl::CXXRecord:
 5791     case Decl::Record: {
 6355                                            const Decl *Container,
tools/clang/lib/Frontend/Rewrite/RewriteObjC.cpp
  191     void HandleTopLevelSingleDecl(Decl *D);
  192     void HandleDeclInMainFile(Decl *D);
  263     void RewriteForwardClassDecl(const SmallVectorImpl<Decl *> &DG);
  271     void RewriteImplementationDecl(Decl *Dcl);
  281     void RewriteForwardProtocolDecl(const SmallVectorImpl<Decl *> &DG);
  288     void RewriteObjCQualifiedInterfaceTypes(Decl *Dcl);
  644 void RewriteObjC::HandleTopLevelSingleDecl(Decl *D) {
  681           SmallVector<Decl *, 8> DG;
  700           SmallVector<Decl *, 8> DG;
  928 void RewriteObjC::RewriteForwardClassDecl(const SmallVectorImpl<Decl *> &D) {
 1028 RewriteObjC::RewriteForwardProtocolDecl(const SmallVectorImpl<Decl *> &DG) {
 1163 void RewriteObjC::RewriteImplementationDecl(Decl *OID) {
 2105 void RewriteObjC::RewriteObjCQualifiedInterfaceTypes(Decl *Dcl) {
 4686     for (auto *SD : DS->decls()) {
 4776 void RewriteObjC::HandleDeclInMainFile(Decl *D) {
 4778     case Decl::Function: {
 4812     case Decl::ObjCMethod: {
 4830     case Decl::ObjCImplementation: {
 4835     case Decl::ObjCCategoryImpl: {
 4840     case Decl::Var: {
 4876     case Decl::TypeAlias:
 4877     case Decl::Typedef: {
 4886     case Decl::CXXRecord:
 4887     case Decl::Record: {
tools/clang/lib/Index/FileIndexRecord.cpp
   20                                        const Decl *D,
   46     const Decl *D = DclInfo.Dcl;
tools/clang/lib/Index/FileIndexRecord.h
   49   void addDeclOccurence(SymbolRoleSet Roles, unsigned Offset, const Decl *D,
tools/clang/lib/Index/IndexBody.cpp
  379       const Decl *D = *I;
tools/clang/lib/Index/IndexDecl.cpp
   40   bool VisitDecl(const Decl *D) {
  445     for (const auto *I : D->decls()) {
  639     const Decl *SpecializationOf =
  730 bool IndexingContext::indexDecl(const Decl *D) {
  749   for (const auto *I : DC->decls())
  755 bool IndexingContext::indexTopLevelDecl(const Decl *D) {
tools/clang/lib/Index/IndexSymbol.cpp
   43 static void checkForIBOutlets(const Decl *D, SymbolPropertySet &PropSet) {
   52 bool index::isFunctionLocalSymbol(const Decl *D) {
   84 SymbolInfo index::getSymbolInfo(const Decl *D) {
  169     case Decl::Import:
  172     case Decl::Typedef:
  174     case Decl::Function:
  177     case Decl::Field:
  178     case Decl::IndirectField:
  186     case Decl::EnumConstant:
  188     case Decl::ObjCInterface:
  189     case Decl::ObjCImplementation: {
  199     case Decl::ObjCProtocol:
  203     case Decl::ObjCCategory:
  204     case Decl::ObjCCategoryImpl: {
  216     case Decl::ObjCMethod: {
  232     case Decl::ObjCProperty:
  241     case Decl::ObjCIvar:
  246     case Decl::Namespace:
  250     case Decl::NamespaceAlias:
  254     case Decl::CXXConstructor: {
  264     case Decl::CXXDestructor:
  268     case Decl::CXXConversion:
  272     case Decl::CXXMethod: {
  281     case Decl::ClassTemplate:
  286     case Decl::FunctionTemplate:
  306     case Decl::TypeAliasTemplate:
  311     case Decl::TypeAlias:
  315     case Decl::UnresolvedUsingTypename:
  321     case Decl::UnresolvedUsingValue:
  327     case Decl::Using:
  331     case Decl::Binding:
  335     case Decl::MSProperty:
  343     case Decl::ClassTemplatePartialSpecialization:
  344     case Decl::ClassScopeFunctionSpecialization:
  345     case Decl::ClassTemplateSpecialization:
  346     case Decl::CXXRecord:
  347     case Decl::Enum:
  348     case Decl::Record:
  351     case Decl::VarTemplateSpecialization:
  352     case Decl::VarTemplatePartialSpecialization:
  353     case Decl::ImplicitParam:
  354     case Decl::ParmVar:
  355     case Decl::Var:
  356     case Decl::VarTemplate:
  472 bool index::printSymbolName(const Decl *D, const LangOptions &LO,
tools/clang/lib/Index/IndexingAction.cpp
   60   std::function<bool(const Decl *)> ShouldSkipFunctionBody;
   66                    std::function<bool(const Decl *)> ShouldSkipFunctionBody)
   99   bool shouldSkipFunctionBody(Decl *D) override {
  129     std::function<bool(const Decl *)> ShouldSkipFunctionBody) {
  141 static bool topLevelDeclVisitor(void *context, const Decl *D) {
  174                                ArrayRef<const Decl *> Decls,
  185   for (const Decl *D : Decls)
  207   for (const Decl *D : Reader.getModuleFileLevelDecls(Mod)) {
tools/clang/lib/Index/IndexingContext.cpp
   20 static bool isGeneratedDecl(const Decl *D) {
   27 bool IndexingContext::shouldIndex(const Decl *D) {
   51 bool IndexingContext::handleDecl(const Decl *D,
   57 bool IndexingContext::handleDecl(const Decl *D, SourceLocation Loc,
   64   const Decl *OrigD = D;
   68   return handleDeclOccurrence(D, Loc, /*IsRef=*/false, cast<Decl>(DC),
   79                                       const Decl *RefD) {
  150 bool IndexingContext::isTemplateImplicitInstantiation(const Decl *D) {
  167     if (const auto *Parent = dyn_cast<Decl>(D->getDeclContext()))
  167     if (const auto *Parent = dyn_cast<Decl>(D->getDeclContext()))
  182 bool IndexingContext::shouldIgnoreIfImplicit(const Decl *D) {
  197 getDeclContextForTemplateInstationPattern(const Decl *D) {
  206 static const Decl *adjustTemplateImplicitInstantiation(const Decl *D) {
  206 static const Decl *adjustTemplateImplicitInstantiation(const Decl *D) {
  240 static bool isDeclADefinition(const Decl *D, const DeclContext *ContainerDC, ASTContext &Ctx) {
  270 static const Decl *adjustParent(const Decl *Parent) {
  270 static const Decl *adjustParent(const Decl *Parent) {
  273   for (;; Parent = cast<Decl>(Parent->getDeclContext())) {
  292 static const Decl *getCanonicalDecl(const Decl *D) {
  292 static const Decl *getCanonicalDecl(const Decl *D) {
  351 bool IndexingContext::handleDeclOccurrence(const Decl *D, SourceLocation Loc,
  352                                            bool IsRef, const Decl *Parent,
  356                                            const Decl *OrigD,
tools/clang/lib/Index/IndexingContext.h
   52   bool shouldIndex(const Decl *D);
   68   static bool isTemplateImplicitInstantiation(const Decl *D);
   70   bool handleDecl(const Decl *D, SymbolRoleSet Roles = SymbolRoleSet(),
   73   bool handleDecl(const Decl *D, SourceLocation Loc,
   84                        const Decl *RefD = nullptr);
   97   bool indexDecl(const Decl *D);
  121   bool indexTopLevelDecl(const Decl *D);
  125   bool shouldIgnoreIfImplicit(const Decl *D);
  127   bool handleDeclOccurrence(const Decl *D, SourceLocation Loc,
  128                             bool IsRef, const Decl *Parent,
  132                             const Decl *RefD,
tools/clang/lib/Index/USRGeneration.cpp
  132   bool GenLoc(const Decl *D, bool IncludeOffset);
  420     case Decl::ObjCInterface:
  421     case Decl::ObjCImplementation:
  425     case Decl::ObjCCategory: {
  449     case Decl::ObjCCategoryImpl: {
  465     case Decl::ObjCProtocol: {
  479     Visit(cast<Decl>(D->getDeclContext()));
  599 bool USRGenerator::GenLoc(const Decl *D, bool IncludeOffset) {
 1072 bool clang::index::generateUSRForDecl(const Decl *D,
tools/clang/lib/Parse/ParseAST.cpp
  117     Decl::EnableStatistics();
  168   for (Decl *D : S.WeakTopLevelDecls())
  185     Decl::PrintStats();
tools/clang/lib/Parse/ParseCXXInlineMethods.cpp
  185 void Parser::ParseCXXNonStaticMemberInitializer(Decl *VarD) {
  564         FD->isInIdentifierNamespace(Decl::IDNS_OrdinaryFriend))
tools/clang/lib/Parse/ParseDecl.cpp
   45                                  Decl **OwnedType,
 1458 void Parser::ParseLexedAttributeList(LateParsedAttrList &LAs, Decl *D,
 1498     Decl *D = LA.Decls[0];
 1753   Decl *SingleDecl = nullptr;
 1834     Decl *TheDecl = Actions.ParsedFreeStandingDeclSpec(getCurScope(), AS_none,
 1838       Decl* decls[] = {AnonRecord, TheDecl};
 2064         Decl *TheDecl =
 2111     Decl *ThisDecl = Actions.ActOnDeclarator(getCurScope(), D);
 2124   SmallVector<Decl *, 8> DeclsInGroup;
 2125   Decl *FirstDecl = ParseDeclarationAfterDeclaratorAndAttributes(
 2168       Decl *ThisDecl = ParseDeclarationAfterDeclarator(D);
 2236 Decl *Parser::ParseDeclarationAfterDeclarator(
 2244 Decl *Parser::ParseDeclarationAfterDeclaratorAndAttributes(
 2250     Decl *ThisDecl;
 2252     InitializerScopeRAII(Parser &P, Declarator &D, Decl *ThisDecl)
 2278   Decl *ThisDecl = nullptr;
 4065     Decl *TheDecl = Actions.ParsedFreeStandingDeclSpec(getCurScope(), AS_none,
 4126                                   DeclSpec::TST TagType, Decl *TagDecl) {
 4138   SmallVector<Decl *, 32> FieldDecls;
 4187         Decl *Field =
 4212       SmallVector<Decl *, 16> Fields;
 4549   Decl *TagDecl = Actions.ActOnTag(
 4611     Decl *D = SkipBody.CheckSameAsPrevious ? SkipBody.New : TagDecl;
 4637 void Parser::ParseEnumBody(SourceLocation StartLoc, Decl *EnumDecl) {
 4649   SmallVector<Decl *, 32> EnumConstantDecls;
 4652   Decl *LastEnumConstDecl = nullptr;
 4694     Decl *EnumConstDecl = Actions.ActOnEnumConstant(
 6413     for (Decl *D : getCurScope()->decls()) {
 6637       Decl *Param = Actions.ActOnParamDeclarator(getCurScope(), ParmDeclarator);
tools/clang/lib/Parse/ParseDeclCXX.cpp
  133     Decl *NSAlias = ParseNamespaceAlias(NamespaceLoc, IdentLoc, Ident, DeclEnd);
  215   Decl *NamespcDecl = Actions.ActOnStartNamespaceDef(
  261   Decl *NamespcDecl = Actions.ActOnStartNamespaceDef(
  277 Decl *Parser::ParseNamespaceAlias(SourceLocation NamespaceLoc,
  333 Decl *Parser::ParseLinkage(ParsingDeclSpec &DS, DeclaratorContext Context) {
  338   Decl *LinkageSpec =
  416 Decl *Parser::ParseExportDeclaration() {
  421   Decl *ExportDecl = Actions.ActOnStartExportDecl(
  493     Decl *UsingDir = ParseUsingDirective(Context, UsingLoc, DeclEnd, attrs);
  516 Decl *Parser::ParseUsingDirective(DeclaratorContext Context,
  703     Decl *DeclFromDeclSpec = nullptr;
  704     Decl *AD = ParseAliasDeclarationAfterDeclarator(
  728   SmallVector<Decl *, 8> DeclsInGroup;
  747       Decl *UD = Actions.ActOnUsingDeclaration(getCurScope(), AS, UsingLoc,
  777 Decl *Parser::ParseAliasDeclarationAfterDeclarator(
  780     ParsedAttributes &Attrs, Decl **OwnedType) {
  830   Decl *DeclFromDeclSpec = nullptr;
  863 Decl *Parser::ParseStaticAssertDeclaration(SourceLocation &DeclEnd){
 1962       Decl *D =
 2034 void Parser::ParseBaseClause(Decl *ClassDecl) {
 2074 BaseResult Parser::ParseBaseSpecifier(Decl *ClassDecl) {
 2162                                             Decl *ThisDecl) {
 2630     Decl *TheDecl = Actions.ParsedFreeStandingDeclSpec(
 2634       Decl* decls[] = {AnonRecord, TheDecl};
 2670   SmallVector<Decl *, 8> DeclsInGroup;
 2738       Decl *FunDecl =
 2956 ExprResult Parser::ParseCXXMemberInitializer(Decl *D, bool IsFunction,
 2998                                         unsigned TagType, Decl *TagDecl) {
 3053     DeclSpec::TST TagType, Decl *TagDecl) {
 3163                                          unsigned TagType, Decl *TagDecl) {
 3423 void Parser::ParseConstructorInitializer(Decl *ConstructorDecl) {
 3485 MemInitResult Parser::ParseMemInitializer(Decl *ConstructorDecl) {
 3799 Parser::PushParsingClass(Decl *ClassDecl, bool NonNestedClass,
tools/clang/lib/Parse/ParseExprCXX.cpp
 2021   Decl *DeclOut = Dcl.get();
tools/clang/lib/Parse/ParseObjc.cpp
   57   Decl *SingleDecl = nullptr;
  171   Decl *Decl = Actions.getObjCDeclContext();
  212 Decl *Parser::ParseObjCAtInterfaceDeclaration(SourceLocation AtLoc,
  277     SmallVector<Decl *, 8> ProtocolRefs;
  285     Decl *CategoryType = Actions.ActOnStartCategoryInterface(
  303   SmallVector<Decl *, 4> protocols;
  355   Decl *ClsType = Actions.ActOnStartClassInterface(
  431   SmallVector<Decl *, 4> typeParams;
  594                                         Decl *CDecl) {
  595   SmallVector<Decl *, 32> allMethods;
  604       if (Decl *methodPrototype =
  761         Decl *Property = Actions.ActOnProperty(
  982 Decl *Parser::ParseObjCMethodPrototype(tok::ObjCKeywordKind MethodImplKind,
  988   Decl *MDecl = ParseObjCMethodDecl(mLoc, methodType, MethodImplKind,
 1327 Decl *Parser::ParseObjCMethodDecl(SourceLocation mLoc,
 1381     Decl *Result = Actions.ActOnMethodDeclaration(
 1487     Decl *Param = Actions.ActOnParamDeclarator(getCurScope(), ParmDecl);
 1505   Decl *Result = Actions.ActOnMethodDeclaration(
 1518 ParseObjCProtocolReferences(SmallVectorImpl<Decl *> &Protocols,
 1565   SmallVector<Decl *, 8> protocols;
 1594        SmallVectorImpl<Decl *> &protocols,
 1773        SmallVectorImpl<Decl *> &protocols,
 1830   SmallVector<Decl *, 4> protocols;
 1862 void Parser::HelperActionsForIvarDeclarations(Decl *interfaceDecl, SourceLocation atLoc,
 1864                                  SmallVectorImpl<Decl *> &AllIvarDecls,
 1900 void Parser::ParseObjCClassInstanceVariables(Decl *interfaceDecl,
 1904   SmallVector<Decl *, 32> AllIvarDecls;
 1972       Decl *Field = Actions.ActOnIvar(
 2069   SmallVector<Decl *, 8> ProtocolRefs;
 2077   Decl *ProtoType = Actions.ActOnStartProtocolInterface(
 2117   Decl *ObjCImpDecl = nullptr;
 2165       SmallVector<Decl *, 4> protocols;
 2196       SmallVector<Decl *, 4> protocols;
 2207   SmallVector<Decl *, 8> DeclsInGroup;
 2278 Decl *Parser::ParseObjCAtAliasDeclaration(SourceLocation atLoc) {
 2306 Decl *Parser::ParseObjCPropertySynthesize(SourceLocation atLoc) {
 2360 Decl *Parser::ParseObjCPropertyDynamic(SourceLocation atLoc) {
 2525       Decl *FirstPart = nullptr;
 2639 void Parser::StashAwayMethodOrFunctionBodyTokens(Decl *MDecl) {
 2683 Decl *Parser::ParseObjCMethodDefinition() {
 2684   Decl *MDecl = ParseObjCMethodPrototype();
 3631   Decl *MCDecl = LM.D;
tools/clang/lib/Parse/ParseOpenMP.cpp
  321   for (Decl *D : DRD.get()) {
  638     Decl *D = *Ptr.get().begin();
 1195   SmallVector<Decl *, 4> Decls(SameDirectiveDecls.begin(),
 1249     DeclSpec::TST TagType, Decl *Tag) {
 1443     llvm::SmallVector<Decl *, 4>  Decls;
tools/clang/lib/Parse/ParseStmt.cpp
 1038     SmallVector<Decl *, 8> DeclsInGroup;
 2076 Decl *Parser::ParseFunctionStatementBody(Decl *Decl, ParseScope &BodyScope) {
 2076 Decl *Parser::ParseFunctionStatementBody(Decl *Decl, ParseScope &BodyScope) {
 2109 Decl *Parser::ParseFunctionTryBlock(Decl *Decl, ParseScope &BodyScope) {
 2109 Decl *Parser::ParseFunctionTryBlock(Decl *Decl, ParseScope &BodyScope) {
 2294   Decl *ExceptionDecl = nullptr;
tools/clang/lib/Parse/ParseTemplate.cpp
   26 Decl *Parser::ParseDeclarationStartingWithTemplate(
   63 Decl *Parser::ParseTemplateDeclarationOrSpecialization(
  176 Decl *Parser::ParseSingleDeclarationAfterTemplate(
  220     Decl *Decl = Actions.ParsedFreeStandingDeclSpec(
  315   Decl *ThisDecl = ParseDeclarationAfterDeclarator(DeclaratorInfo,
  339 Decl *
 1414 Decl *Parser::ParseExplicitInstantiation(DeclaratorContext Context,
 1486         getCurScope(), cast<Decl>(CDC.getDC()));
tools/clang/lib/Parse/Parser.cpp
  624     Decl *ImportDecl = ParseModuleImport(SourceLocation());
  723   Decl *SingleDecl = nullptr;
 1040     Decl *TheDecl = Actions.ParsedFreeStandingDeclSpec(getCurScope(), AS_none,
 1046       Decl* decls[] = {AnonRecord, TheDecl};
 1091     Decl *TheDecl = ParseLinkage(DS, DeclaratorContext::FileContext);
 1129 Decl *Parser::ParseFunctionDefinition(ParsingDeclarator &D,
 1192     Decl *DP = Actions.HandleDeclarator(ParentScope, D,
 1223     Decl *FuncDecl = Actions.HandleDeclarator(ParentScope, D,
 1243   Decl *Res = Actions.ActOnStartOfFunctionDef(getCurScope(), D,
 1403       Decl *Param =
 2293 Decl *Parser::ParseModuleImport(SourceLocation AtLoc) {
tools/clang/lib/Sema/AnalysisBasedWarnings.cpp
  530   static CheckFallThroughDiagnostics MakeForFunction(const Decl *Func) {
  563   static CheckFallThroughDiagnostics MakeForCoroutine(const Decl *Func) {
  636 static void CheckFallThroughForBody(Sema &S, const Decl *D, const Stmt *Body,
 1172     bool TraverseDecl(Decl *D) { return true; }
 1345                                       const Decl *D,
 2022                                      const Decl *D, QualType BlockType) {
tools/clang/lib/Sema/CodeCompleteConsumer.cpp
  663 static AvailabilityResult getDeclAvailability(const Decl *D) {
  666     AR = std::max(AR, cast<Decl>(D->getDeclContext())->getAvailability());
tools/clang/lib/Sema/DeclSpec.cpp
  758                                Decl *Rep, bool Owned,
  767                                Decl *Rep, bool Owned,
tools/clang/lib/Sema/IdentifierResolver.cpp
   99 bool IdentifierResolver::isDeclInScope(Decl *D, DeclContext *Ctx, Scope *S,
  279     Decl *MostRecent = Existing->getMostRecentDecl();
tools/clang/lib/Sema/JumpDiagnostics.cpp
   75   void BuildScopeInformation(Decl *D, unsigned &ParentScope);
  133 static ScopePair GetDiagForGotoScopeDecl(Sema &S, const Decl *D) {
  222 void JumpScopeChecker::BuildScopeInformation(Decl *D, unsigned &ParentScope) {
  448     for (auto *I : DS->decls())
tools/clang/lib/Sema/MultiplexExternalSemaSource.cpp
   42 Decl *MultiplexExternalSemaSource::GetExternalDecl(uint32_t ID) {
   44     if (Decl *Result = Sources[i]->GetExternalDecl(ID))
   49 void MultiplexExternalSemaSource::CompleteRedeclChain(const Decl *D) {
   95 MultiplexExternalSemaSource::hasExternalDefinitions(const Decl *D) {
  117     const DeclContext *DC, llvm::function_ref<bool(Decl::Kind)> IsKindWeWant,
  118     SmallVectorImpl<Decl *> &Result) {
  126                                                 SmallVectorImpl<Decl *> &Decls){
  173 bool MultiplexExternalSemaSource::DeclIsFromPCHWithObjectFile(const Decl *D) {
tools/clang/lib/Sema/ParsedAttr.cpp
  113   bool (*DiagAppertainsToDecl)(Sema &S, const ParsedAttr &Attr, const Decl *);
  142 bool ParsedAttr::diagnoseAppertainsTo(Sema &S, const Decl *D) const {
  146 bool ParsedAttr::appliesToDecl(const Decl *D,
tools/clang/lib/Sema/Sema.cpp
 1020     Decl *PrevDecl = LookupSingleName(TUScope, WeakID.first, SourceLocation(),
 1738                            const Decl *D, QualType BlockType) {
 2196 void Sema::setOpenCLExtensionForDecl(Decl *FD, StringRef ExtStr) {
 2211 void Sema::setCurrentOpenCLExtensionForDecl(Decl *D) {
 2245 bool Sema::isOpenCLDisabledDecl(Decl *FD) {
 2277   Decl *Decl = nullptr;
tools/clang/lib/Sema/SemaAccess.cpp
 1121   Decl *ImmediateChild;
 1128     ImmediateChild = cast<Decl>(DC);
 1134   for (const auto *I : DeclaringClass->decls()) {
 1467 void Sema::HandleDelayedAccessCheck(DelayedDiagnostic &DD, Decl *D) {
 1495   Decl *NamingD = FindInstantiatedDecl(Loc, DD.getAccessNamingClass(),
 1498   Decl *TargetD = FindInstantiatedDecl(Loc, DD.getAccessTarget(),
tools/clang/lib/Sema/SemaAttr.cpp
   94   for (Decl *Redecl : Record->redecls())
  582 void Sema::AddCFAuditedAttribute(Decl *D) {
  807 void Sema::AddPragmaAttributes(Scope *S, Decl *D) {
  880 void Sema::AddPushedVisibilityAttribute(Decl *D) {
tools/clang/lib/Sema/SemaChecking.cpp
  271   const Decl *TargetDecl = CE->getCalleeDecl();
  749 static OpenCLAccessAttr *getOpenCLArgAccess(const Decl *D) {
13224   const Decl *D = FD;
tools/clang/lib/Sema/SemaCodeComplete.cpp
   67   llvm::SmallPtrSet<const Decl *, 16> AllDeclsFound;
  336   void Ignore(const Decl *D) { AllDeclsFound.insert(D->getCanonicalDecl()); }
  388 void PreferredTypeBuilder::enterVariableInit(SourceLocation Tok, Decl *D) {
  743   if (ND->getFriendObjectKind() == Decl::FOK_Undeclared)
 1049 static bool isConstructor(const Decl *ND) {
 1074   const Decl *CanonDecl = R.Declaration->getCanonicalDecl();
 1120           (IDNS & (Decl::IDNS_Member | Decl::IDNS_Ordinary |
 1120           (IDNS & (Decl::IDNS_Member | Decl::IDNS_Ordinary |
 1121                    Decl::IDNS_LocalExtern | Decl::IDNS_ObjCProtocol)))
 1121                    Decl::IDNS_LocalExtern | Decl::IDNS_ObjCProtocol)))
 1125       if (((I->first->getIdentifierNamespace() & Decl::IDNS_ObjCProtocol) ||
 1126            (IDNS & Decl::IDNS_ObjCProtocol)) &&
 1373   unsigned IDNS = Decl::IDNS_Ordinary | Decl::IDNS_LocalExtern;
 1373   unsigned IDNS = Decl::IDNS_Ordinary | Decl::IDNS_LocalExtern;
 1375     IDNS |= Decl::IDNS_Tag | Decl::IDNS_Namespace | Decl::IDNS_Member;
 1375     IDNS |= Decl::IDNS_Tag | Decl::IDNS_Namespace | Decl::IDNS_Member;
 1375     IDNS |= Decl::IDNS_Tag | Decl::IDNS_Namespace | Decl::IDNS_Member;
 1398   unsigned IDNS = Decl::IDNS_Ordinary | Decl::IDNS_LocalExtern;
 1398   unsigned IDNS = Decl::IDNS_Ordinary | Decl::IDNS_LocalExtern;
 1400     IDNS |= Decl::IDNS_Tag | Decl::IDNS_Namespace | Decl::IDNS_Member;
 1400     IDNS |= Decl::IDNS_Tag | Decl::IDNS_Namespace | Decl::IDNS_Member;
 1400     IDNS |= Decl::IDNS_Tag | Decl::IDNS_Namespace | Decl::IDNS_Member;
 1425   unsigned IDNS = Decl::IDNS_Ordinary | Decl::IDNS_LocalExtern;
 1425   unsigned IDNS = Decl::IDNS_Ordinary | Decl::IDNS_LocalExtern;
 1427     IDNS |= Decl::IDNS_Tag | Decl::IDNS_Namespace;
 1427     IDNS |= Decl::IDNS_Tag | Decl::IDNS_Namespace;
 2653   if (ObjCQuals & Decl::OBJC_TQ_In)
 2655   else if (ObjCQuals & Decl::OBJC_TQ_Inout)
 2657   else if (ObjCQuals & Decl::OBJC_TQ_Out)
 2659   if (ObjCQuals & Decl::OBJC_TQ_Bycopy)
 2661   else if (ObjCQuals & Decl::OBJC_TQ_Byref)
 2663   if (ObjCQuals & Decl::OBJC_TQ_Oneway)
 2665   if (ObjCQuals & Decl::OBJC_TQ_CSNullability) {
 3719 CXCursorKind clang::getCursorKindForDecl(const Decl *D) {
 3724   case Decl::Enum:
 3726   case Decl::EnumConstant:
 3728   case Decl::Field:
 3730   case Decl::Function:
 3732   case Decl::ObjCCategory:
 3734   case Decl::ObjCCategoryImpl:
 3736   case Decl::ObjCImplementation:
 3739   case Decl::ObjCInterface:
 3741   case Decl::ObjCIvar:
 3743   case Decl::ObjCMethod:
 3747   case Decl::CXXMethod:
 3749   case Decl::CXXConstructor:
 3751   case Decl::CXXDestructor:
 3753   case Decl::CXXConversion:
 3755   case Decl::ObjCProperty:
 3757   case Decl::ObjCProtocol:
 3759   case Decl::ParmVar:
 3761   case Decl::Typedef:
 3763   case Decl::TypeAlias:
 3765   case Decl::TypeAliasTemplate:
 3767   case Decl::Var:
 3769   case Decl::Namespace:
 3771   case Decl::NamespaceAlias:
 3773   case Decl::TemplateTypeParm:
 3775   case Decl::NonTypeTemplateParm:
 3777   case Decl::TemplateTemplateParm:
 3779   case Decl::FunctionTemplate:
 3781   case Decl::ClassTemplate:
 3783   case Decl::AccessSpec:
 3785   case Decl::ClassTemplatePartialSpecialization:
 3787   case Decl::UsingDirective:
 3789   case Decl::StaticAssert:
 3791   case Decl::Friend:
 3793   case Decl::TranslationUnit:
 3796   case Decl::Using:
 3797   case Decl::UnresolvedUsingValue:
 3798   case Decl::UnresolvedUsingTypename:
 3801   case Decl::ObjCPropertyImpl:
 3811   case Decl::Import:
 3814   case Decl::ObjCTypeParam:
 4228   SmallVector<Decl *, 4> IgnoreDecls;
 5240     Scope *S, Decl *ConstructorDecl, CXXScopeSpec SS, ParsedType TemplateTypeTy,
 5258 void Sema::CodeCompleteInitializer(Scope *S, Decl *D) {
 5560     Decl *ConstructorD, ArrayRef<CXXCtorInitializer *> Initializers) {
 5740     for (const auto *D : S->decls()) {
 7076   for (const auto *D : Ctx->decls()) {
 7140   for (const auto *D : Ctx->decls()) {
 7235   for (const auto *D : TU->decls())
 7302   for (const auto *D : Container->decls())
 8158   Decl *IDecl = nullptr;
 8166   if (Decl *D = IDecl) {
 8246       if ((*P)->getObjCDeclQualifier() & Decl::OBJC_TQ_CSNullability)
tools/clang/lib/Sema/SemaDecl.cpp
   54 Sema::DeclGroupPtrTy Sema::ConvertDeclToDeclGroup(Decl *Ptr, Decl *OwnedType) {
   54 Sema::DeclGroupPtrTy Sema::ConvertDeclToDeclGroup(Decl *Ptr, Decl *OwnedType) {
   56     Decl *Group[2] = { OwnedType, Ptr };
  476         declaresSameEntity(LookupRD, cast<Decl>(FoundRD->getParent())))
 1304                                                                     Decl *D) {
 1366 void Sema::ActOnReenterFunctionContext(Scope* S, Decl *D) {
 1832   for (auto *TmpD : D->decls()) {
 1888   for (auto *TmpD : S->decls()) {
 2294         for (auto *D : NewTag->decls()) {
 2380 static bool DeclHasAttr(const Decl *D, const Attr *A) {
 2399 static bool isAttributeTargetADefinition(Decl *D) {
 2411 static bool mergeAlignedAttrs(Sema &S, NamedDecl *New, Decl *Old) {
 2598 static const NamedDecl *getDefinition(const Decl *D) {
 2612 static bool hasAttribute(const Decl *D, attr::Kind Kind) {
 2621 static void checkNewAttributesAfterDef(Sema &S, Decl *New, const Decl *Old) {
 2621 static void checkNewAttributesAfterDef(Sema &S, Decl *New, const Decl *Old) {
 2770 void Sema::mergeDeclAttributes(NamedDecl *New, Decl *Old,
 2966                ((NewParam->getObjCDeclQualifier() & Decl::OBJC_TQ_CSNullability)
 2970                ((OldParam->getObjCDeclQualifier() & Decl::OBJC_TQ_CSNullability)
 3243       const Decl *DiagOld = Old;
 3585       if (New->getFriendObjectKind() != Decl::FOK_None) {
 4280 Decl *
 4318   Decl *ManglingContextDecl;
 4392 Decl *
 4397   Decl *TagD = nullptr;
 4699   for (auto *D : AnonRecord->decls()) {
 4779   for (const auto *I : Record->decls()) {
 4811 Decl *Sema::BuildAnonymousStructOrUnion(Scope *S, DeclSpec &DS,
 4898     for (auto *Mem : Record->decls()) {
 5058       Decl *ManglingContextDecl;
 5089 Decl *Sema::BuildMicrosoftCAnonymousStruct(Scope *S, DeclSpec &DS,
 5379 Decl *Sema::ActOnDeclarator(Scope *S, Declarator &D) {
 5381   Decl *Dcl = HandleDeclarator(S, D, MultiTemplateParamsArg());
 6307                         FD->getFriendObjectKind() == Decl::FOK_Declared;
 6469 static bool isDeclExternC(const Decl *D) {
 7128     Decl *ManglingContextDecl;
 8048       Decl *Canonical = Result->getCanonicalDecl();
 8440   SmallVector<const Decl *, 4> VisitStack;
 8458     const Decl *Next = VisitStack.pop_back_val();
 9266         PrincipalDecl->isInIdentifierNamespace(Decl::IDNS_Ordinary))
 9634 bool Sema::shouldLinkDependentDeclWithPrevious(Decl *D, Decl *PrevDecl) {
 9634 bool Sema::shouldLinkDependentDeclWithPrevious(Decl *D, Decl *PrevDecl) {
 9906   for (const Decl *D = FD->getPreviousDecl(); D; D = D->getPreviousDecl()) {
10774     Decl *OrigDecl;
10785     SelfReferenceChecker(Sema &S, Decl *OrigDecl) : Inherited(S.Context),
11049       Decl* ReferenceDecl = DRE->getDecl();
11073   static void CheckSelfReference(Sema &S, Decl* OrigDecl, Expr *E,
11548 void Sema::AddInitializerToDecl(Decl *RealDecl, Expr *Init, bool DirectInit) {
11987 void Sema::ActOnInitializerError(Decl *D) {
12029 void Sema::ActOnUninitializedDecl(Decl *RealDecl) {
12267 void Sema::ActOnCXXForRangeDecl(Decl *D) {
12332   Decl *Var = ActOnDeclarator(S, D);
12612 void Sema::FinalizeDeclaration(Decl *ThisDecl) {
12801                                                    ArrayRef<Decl *> Group) {
12802   SmallVector<Decl*, 8> Decls;
12814     if (Decl *D = Group[i]) {
12871 Sema::BuildDeclaratorGroup(MutableArrayRef<Decl *> Group) {
12909 void Sema::ActOnDocumentableDecl(Decl *D) {
12913 void Sema::ActOnDocumentableDecls(ArrayRef<Decl *> Group) {
12932     Decl *MaybeTagDecl = Group[0];
12985 Decl *Sema::ActOnParamDeclarator(Scope *S, Declarator &D) {
13263 Decl *
13272   Decl *DP = HandleDeclarator(ParentScope, D, TemplateParameterLists);
13356           I->getFriendObjectKind() != Decl::FOK_None) {
13362                 declaresSameEntity(cast<Decl>(I->getLexicalDeclContext()),
13363                                    cast<Decl>(FD->getLexicalDeclContext())))
13386           if (D->getFriendObjectKind() != Decl::FOK_None)
13483 Decl *Sema::ActOnStartOfFunctionDef(Scope *FnBodyScope, Decl *D,
13483 Decl *Sema::ActOnStartOfFunctionDef(Scope *FnBodyScope, Decl *D,
13579     for (Decl *NPD : FD->decls()) {
13627       getCurLexicalContext()->getDeclKind() != Decl::ObjCCategoryImpl &&
13628       getCurLexicalContext()->getDeclKind() != Decl::ObjCImplementation)
13681 bool Sema::canSkipFunctionBody(Decl *D) {
13699 Decl *Sema::ActOnSkippedFunctionBody(Decl *Decl) {
13699 Decl *Sema::ActOnSkippedFunctionBody(Decl *Decl) {
13709 Decl *Sema::ActOnFinishFunctionBody(Decl *D, Stmt *BodyArg) {
13709 Decl *Sema::ActOnFinishFunctionBody(Decl *D, Stmt *BodyArg) {
13757 Decl *Sema::ActOnFinishFunctionBody(Decl *dcl, Stmt *Body,
13757 Decl *Sema::ActOnFinishFunctionBody(Decl *dcl, Stmt *Body,
14035           for (const auto *Decl : DS->decls()) {
14079 void Sema::ActOnFinishDelayedAttribute(Scope *S, Decl *D,
14475 Sema::NonTagKind Sema::getNonTagTypeDeclKind(const Decl *PrevDecl,
14697 Decl *Sema::ActOnTag(Scope *S, unsigned TagSpec, TagUseKind TUK,
15219                             Decl::FOK_Undeclared ||
15476       DC->getDeclKind() == Decl::Enum) {
15633 void Sema::ActOnTagStartDefinition(Scope *S, Decl *TagD) {
15647 bool Sema::ActOnDuplicateDefinition(DeclSpec &DS, Decl *Prev,
15657 Decl *Sema::ActOnObjCContainerStartDefinition(Decl *IDecl) {
15657 Decl *Sema::ActOnObjCContainerStartDefinition(Decl *IDecl) {
15667 void Sema::ActOnStartCXXMemberDeclarations(Scope *S, Decl *TagD,
15704 void Sema::ActOnTagFinishDefinition(Scope *S, Decl *TagD,
15745   ActOnObjCContainerStartDefinition(cast<Decl>(DC));
15749 void Sema::ActOnTagDefinitionError(Scope *S, Decl *TagD) {
15861 Decl *Sema::ActOnField(Scope *S, Decl *TagD, SourceLocation DeclStart,
15861 Decl *Sema::ActOnField(Scope *S, Decl *TagD, SourceLocation DeclStart,
16252 Decl *Sema::ActOnIvar(Scope *S,
16367                              SmallVectorImpl<Decl *> &AllIvarDecls) {
16371   Decl *ivarDecl = AllIvarDecls[AllIvarDecls.size()-1];
16400 void Sema::ActOnFields(Scope *S, SourceLocation RecLoc, Decl *EnclosingDecl,
16401                        ArrayRef<Decl *> Fields, SourceLocation LBrac,
16413     case Decl::ObjCCategory:
16416     case Decl::ObjCImplementation:
16430     for (const auto *I : Record->decls()) {
16440   for (ArrayRef<Decl *>::iterator i = Fields.begin(), end = Fields.end();
17096 Decl *Sema::ActOnEnumConstant(Scope *S, Decl *theEnumDecl, Decl *lastEnumConst,
17096 Decl *Sema::ActOnEnumConstant(Scope *S, Decl *theEnumDecl, Decl *lastEnumConst,
17096 Decl *Sema::ActOnEnumConstant(Scope *S, Decl *theEnumDecl, Decl *lastEnumConst,
17210 static void CheckForDuplicateEnumValues(Sema &S, ArrayRef<Decl *> Elements,
17240   for (auto *Element : Elements) {
17261   for (auto *Element : Elements) {
17348                          Decl *EnumDeclX, ArrayRef<Decl *> Elements, Scope *S,
17348                          Decl *EnumDeclX, ArrayRef<Decl *> Elements, Scope *S,
17500   for (auto *D : Elements) {
17566     for (Decl *D : Elements) {
17583 Decl *Sema::ActOnFileScopeAsmDecl(Expr *expr,
17625   Decl *PrevDecl = LookupSingleName(TUScope, Name, NameLoc, LookupOrdinaryName);
17641   Decl *PrevDecl = LookupSingleName(TUScope, AliasName, AliasNameLoc,
17655 Decl *Sema::getObjCDeclContext() const {
tools/clang/lib/Sema/SemaDeclAttr.cpp
   58 static bool isFunctionOrMethod(const Decl *D) {
   64 static bool isFunctionOrMethodOrBlock(const Decl *D) {
   70 static bool hasDeclarator(const Decl *D) {
   79 static bool hasFunctionProto(const Decl *D) {
   88 static unsigned getFunctionOrMethodNumParams(const Decl *D) {
   96 static const ParmVarDecl *getFunctionOrMethodParam(const Decl *D,
  107 static QualType getFunctionOrMethodParamType(const Decl *D, unsigned Idx) {
  116 static SourceRange getFunctionOrMethodParamRange(const Decl *D, unsigned Idx) {
  122 static QualType getFunctionOrMethodResultType(const Decl *D) {
  128 static SourceRange getFunctionOrMethodResultSourceRange(const Decl *D) {
  136 static bool isFunctionOrMethodVariadic(const Decl *D) {
  144 static bool isInstanceMethod(const Decl *D) {
  298 static bool checkAttrMutualExclusion(Sema &S, Decl *D, const ParsedAttr &AL) {
  308 static bool checkAttrMutualExclusion(Sema &S, Decl *D, const Attr &AL) {
  324     Sema &S, const Decl *D, const AttrInfo &AI, unsigned AttrArgNum,
  402 static void handleSimpleAttribute(Sema &S, Decl *D,
  426 static void handleSimpleAttributeOrDiagnose(Sema &S, Decl *D,
  439 static void handleSimpleAttributeWithExclusions(Sema &S, Decl *D,
  448 static void handleSimpleAttributeWithExclusions(Sema &S, Decl *D,
  501 static bool threadSafetyCheckIsPointer(Sema &S, const Decl *D,
  629 static void checkAttrArgsAreCapabilityObjs(Sema &S, Decl *D,
  726 static void handlePtGuardedVarAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
  733 static bool checkGuardedByAttrCommon(Sema &S, Decl *D, const ParsedAttr &AL,
  747 static void handleGuardedByAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
  755 static void handlePtGuardedByAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
  766 static bool checkAcquireOrderAttrCommon(Sema &S, Decl *D, const ParsedAttr &AL,
  786 static void handleAcquiredAfterAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
  796 static void handleAcquiredBeforeAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
  806 static bool checkLockFunAttrCommon(Sema &S, Decl *D, const ParsedAttr &AL,
  815 static void handleAssertSharedLockAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
  826 static void handleAssertExclusiveLockAttr(Sema &S, Decl *D,
  863 static void handleAllocSizeAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
  899 static bool checkTryLockFunAttrCommon(Sema &S, Decl *D, const ParsedAttr &AL,
  916 static void handleSharedTrylockFunctionAttr(Sema &S, Decl *D,
  926 static void handleExclusiveTrylockFunctionAttr(Sema &S, Decl *D,
  936 static void handleLockReturnedAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
  947 static void handleLocksExcludedAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
  963 static bool checkFunctionConditionAttr(Sema &S, Decl *D, const ParsedAttr &AL,
  991 static void handleEnableIfAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1046 static void handleDiagnoseIfAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1072 static void handlePassObjectSizeAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1104 static void handleConsumableAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1140 static void handleCallableWhenAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1175 static void handleParamTypestateAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1209 static void handleReturnTypestateAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1254 static void handleSetTypestateAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1276 static void handleTestTypestateAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1298 static void handleExtVectorTypeAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1303 static void handlePackedAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1331 static bool checkIBOutletCommon(Sema &S, Decl *D, const ParsedAttr &AL) {
 1357 static void handleIBOutlet(Sema &S, Decl *D, const ParsedAttr &AL) {
 1364 static void handleIBOutletCollection(Sema &S, Decl *D, const ParsedAttr &AL) {
 1447 static void handleNonNullAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1510 static void handleReturnsNonNullAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1520 static void handleNoEscapeAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1535 static void handleAssumeAlignedAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1541 static void handleAllocAlignAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1545 void Sema::AddAssumeAlignedAttr(Decl *D, const AttributeCommonInfo &CI, Expr *E,
 1595 void Sema::AddAllocAlignAttr(Decl *D, const AttributeCommonInfo &CI,
 1637 static void handleOwnershipAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1739 static void handleWeakRefAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1797 static void handleIFuncAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1812 static void handleAliasAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1853 static void handleTLSModelAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1870 static void handleRestrictAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1881 static void handleCPUSpecificAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1931 static void handleCommonAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1942 static void handleNakedAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1960 static void handleNoReturnAttr(Sema &S, Decl *D, const ParsedAttr &Attrs) {
 1972 static void handleNoCfCheckAttr(Sema &S, Decl *D, const ParsedAttr &Attrs) {
 1999 static void handleAnalyzerNoReturnAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 2019 static void handleVecReturnAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 2073 static void handleDependencyAttr(Sema &S, Scope *Scope, Decl *D,
 2088 static void handleUnusedAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 2099 static void handleConstructorAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 2108 static void handleDestructorAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 2118 static void handleAttrWithMessage(Sema &S, Decl *D, const ParsedAttr &AL) {
 2127 static void handleObjCSuppresProtocolAttr(Sema &S, Decl *D,
 2350 static void handleAvailabilityAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 2457 static void handleExternalSourceSymbolAttr(Sema &S, Decl *D,
 2477 static T *mergeVisibilityAttr(Sema &S, Decl *D, const AttributeCommonInfo &CI,
 2491 VisibilityAttr *Sema::mergeVisibilityAttr(Decl *D,
 2498 Sema::mergeTypeVisibilityAttr(Decl *D, const AttributeCommonInfo &CI,
 2503 static void handleVisibilityAttr(Sema &S, Decl *D, const ParsedAttr &AL,
 2553 static void handleObjCMethodFamilyAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 2579 static void handleObjCNSObject(Sema &S, Decl *D, const ParsedAttr &AL) {
 2606 static void handleObjCIndependentClass(Sema &S, Decl *D, const ParsedAttr &AL) {
 2620 static void handleBlocksAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 2637 static void handleSentinelAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 2724 static void handleWarnUnusedResult(Sema &S, Decl *D, const ParsedAttr &AL) {
 2762 static void handleWeakImportAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 2785 static void handleWorkGroupSize(Sema &S, Decl *D, const ParsedAttr &AL) {
 2810 static void handleSubGroupSize(Sema &S, Decl *D, const ParsedAttr &AL) {
 2830 static void handleVecTypeHint(Sema &S, Decl *D, const ParsedAttr &AL) {
 2857 SectionAttr *Sema::mergeSectionAttr(Decl *D, const AttributeCommonInfo &CI,
 2887 static void handleSectionAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 2926 CodeSegAttr *Sema::mergeCodeSegAttr(Decl *D, const AttributeCommonInfo &CI,
 2945 static void handleCodeSegAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 2997 static void handleTargetAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 3008 static void handleMinVectorWidthAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 3025 static void handleCleanupAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 3080 static void handleEnumExtensibilityAttr(Sema &S, Decl *D,
 3102 static void handleFormatArgAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 3167 static void handleInitPriorityAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 3203 FormatAttr *Sema::mergeFormatAttr(Decl *D, const AttributeCommonInfo &CI,
 3224 static void handleFormatAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 3345 static void handleCallbackAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 3483 static void handleTransparentUnionAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 3554 static void handleAnnotateAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 3570 static void handleAlignValueAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 3574 void Sema::AddAlignValueAttr(Decl *D, const AttributeCommonInfo &CI, Expr *E) {
 3616 static void handleAlignedAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 3641 void Sema::AddAlignedAttr(Decl *D, const AttributeCommonInfo &CI, Expr *E,
 3754 void Sema::AddAlignedAttr(Decl *D, const AttributeCommonInfo &CI,
 3763 void Sema::CheckAlignasUnderalignment(Decl *D) {
 3891 static void handleModeAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 3905 void Sema::AddModeAttr(Decl *D, const AttributeCommonInfo &CI,
 4045 static void handleNoDebugAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4049 AlwaysInlineAttr *Sema::mergeAlwaysInlineAttr(Decl *D,
 4064 CommonAttr *Sema::mergeCommonAttr(Decl *D, const ParsedAttr &AL) {
 4071 CommonAttr *Sema::mergeCommonAttr(Decl *D, const CommonAttr &AL) {
 4078 InternalLinkageAttr *Sema::mergeInternalLinkageAttr(Decl *D,
 4083     if (VD->getKind() != Decl::Var) {
 4102 Sema::mergeInternalLinkageAttr(Decl *D, const InternalLinkageAttr &AL) {
 4106     if (VD->getKind() != Decl::Var) {
 4125 MinSizeAttr *Sema::mergeMinSizeAttr(Decl *D, const AttributeCommonInfo &CI) {
 4139     Decl *D, const NoSpeculativeLoadHardeningAttr &AL) {
 4146 OptimizeNoneAttr *Sema::mergeOptimizeNoneAttr(Decl *D,
 4166     Decl *D, const SpeculativeLoadHardeningAttr &AL) {
 4173 static void handleAlwaysInlineAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4182 static void handleMinSizeAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4187 static void handleOptimizeNoneAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4192 static void handleConstantAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4203 static void handleSharedAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4221 static void handleGlobalAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4252 static void handleGNUInlineAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4265 static void handleCallConvAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4344 static void handleSuppressAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4364 static void handleLifetimeCategoryAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4402     for (Decl *Redecl : D->redecls()) {
 4419     for (Decl *Redecl : D->redecls()) {
 4614 void Sema::AddParameterABIAttr(Decl *D, const AttributeCommonInfo &CI,
 4736 void Sema::AddLaunchBoundsAttr(Decl *D, const AttributeCommonInfo &CI,
 4753 static void handleLaunchBoundsAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4762 static void handleArgumentWithTypeTagAttr(Sema &S, Decl *D,
 4794 static void handleTypeTagForDatatypeAttr(Sema &S, Decl *D,
 4821 static void handleXRayLogArgsAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4844 static void handleArmMveAliasAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4887 void Sema::AddXConsumedAttr(Decl *D, const AttributeCommonInfo &CI,
 4955 static bool isValidOSObjectOutParameter(const Decl *D) {
 4964 static void handleXReturnsXRetainedAttr(Sema &S, Decl *D,
 5095 static void handleObjCReturnsInnerPointerAttr(Sema &S, Decl *D,
 5121 static void handleObjCRequiresSuperAttr(Sema &S, Decl *D,
 5141 static void handleObjCBridgeAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5167 static void handleObjCBridgeMutableAttr(Sema &S, Decl *D,
 5180 static void handleObjCBridgeRelatedAttr(Sema &S, Decl *D,
 5196 static void handleObjCDesignatedInitializer(Sema &S, Decl *D,
 5222 static void handleObjCRuntimeName(Sema &S, Decl *D, const ParsedAttr &AL) {
 5234 static void handleObjCBoxable(Sema &S, Decl *D, const ParsedAttr &AL) {
 5256 static void handleObjCOwnershipAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5263 static void handleObjCPreciseLifetimeAttr(Sema &S, Decl *D,
 5306 UuidAttr *Sema::mergeUuidAttr(Decl *D, const AttributeCommonInfo &CI,
 5319 static void handleUuidAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5368 static void handleMSInheritanceAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5383 static void handleDeclspecThreadAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5400 static void handleAbiTagAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5431 static void handleARMInterruptAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5456 static void handleMSP430InterruptAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5508 static void handleMipsInterruptAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5563 static void handleAnyX86InterruptAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5627 static void handleAVRInterruptAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5640 static void handleAVRSignalAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5653 static void handleWebAssemblyImportModuleAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5675 static void handleWebAssemblyImportNameAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5696 static void handleRISCVInterruptAttr(Sema &S, Decl *D,
 5754 static void handleInterruptAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5811 void Sema::addAMDGPUFlatWorkGroupSizeAttr(Decl *D,
 5823 static void handleAMDGPUFlatWorkGroupSizeAttr(Sema &S, Decl *D,
 5865 void Sema::addAMDGPUWavesPerEUAttr(Decl *D, const AttributeCommonInfo &CI,
 5876 static void handleAMDGPUWavesPerEUAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5887 static void handleAMDGPUNumSGPRAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5896 static void handleAMDGPUNumVGPRAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5905 static void handleX86ForceAlignArgPointerAttr(Sema &S, Decl *D,
 5928 static void handleLayoutVersion(Sema &S, Decl *D, const ParsedAttr &AL) {
 5949 DLLImportAttr *Sema::mergeDLLImportAttr(Decl *D,
 5962 DLLExportAttr *Sema::mergeDLLExportAttr(Decl *D,
 5975 static void handleDLLAttr(Sema &S, Decl *D, const ParsedAttr &A) {
 6008 Sema::mergeMSInheritanceAttr(Decl *D, const AttributeCommonInfo &CI,
 6042 static void handleCapabilityAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 6065 static void handleAssertCapabilityAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 6074 static void handleAcquireCapabilityAttr(Sema &S, Decl *D,
 6084 static void handleTryAcquireCapabilityAttr(Sema &S, Decl *D,
 6094 static void handleReleaseCapabilityAttr(Sema &S, Decl *D,
 6104 static void handleRequiresCapabilityAttr(Sema &S, Decl *D,
 6121 static void handleDeprecatedAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 6151 static bool isGlobalVar(const Decl *D) {
 6157 static void handleNoSanitizeAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 6183 static void handleNoSanitizeSpecificAttr(Sema &S, Decl *D,
 6214 static void handleInternalLinkageAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 6219 static void handleOpenCLNoSVMAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 6231 static bool handleCommonAttributeFeatures(Sema &S, Decl *D,
 6271 static void handleOpenCLAccessAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 6311 static void handleDestroyAttr(Sema &S, Decl *D, const ParsedAttr &A) {
 6324 static void handleUninitializedAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 6367 static void handleObjCExternallyRetainedAttr(Sema &S, Decl *D,
 6403 static void handleMIGServerRoutineAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 6425 static void handleMSAllocatorAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 6446 static void ProcessDeclAttribute(Sema &S, Scope *scope, Decl *D,
 7202 void Sema::ProcessDeclAttributeList(Scope *S, Decl *D,
 7276 void Sema::ProcessDeclAttributeDelayed(Decl *D,
 7401 void Sema::ProcessPragmaWeak(Scope *S, Decl *D) {
 7429 void Sema::ProcessDeclAttributes(Scope *S, Decl *D, const Declarator &PD) {
 7452 static bool isForbiddenTypeAllowed(Sema &S, Decl *D,
 7488                                        Decl *D) {
 7513                                                   const Decl *D) {
 7607                                     VersionTuple DeclVersion, Decl *Ctx,
 7658   } while ((Ctx = cast_or_null<Decl>(Ctx->getDeclContext())));
 7689 static NamedDecl *findEnclosingDeclToAnnotate(Decl *OrigCtx) {
 7690   for (Decl *Ctx = OrigCtx; Ctx;
 7691        Ctx = cast_or_null<Decl>(Ctx->getDeclContext())) {
 7797                                       Decl *Ctx, const NamedDecl *ReferringDecl,
 7829     for (const Decl *Redecl = OffendingDecl->getMostRecentDecl(); Redecl;
 8029                                            Decl *Ctx) {
 8041 void Sema::PopParsingDeclaration(ParsingDeclState state, Decl *decl) {
 8121   Decl *Ctx = cast<Decl>(S.getCurLexicalContext());
 8121   Decl *Ctx = cast<Decl>(S.getCurLexicalContext());
 8160   static bool isContained(const Stmt *Target, const Decl *D) {
 8170   const Decl *D;
 8179   static const Stmt *findLastStmtThatUsesDecl(const Decl *D,
 8203   Decl *Ctx;
 8213   DiagnoseUnguardedAvailability(Sema &SemaRef, Decl *Ctx)
 8219   bool TraverseDecl(Decl *D) {
 8360       for (const Decl *D : cast<DeclStmt>(StmtOfUse)->decls()) {
 8452 void Sema::DiagnoseUnguardedAvailabilityViolations(Decl *D) {
tools/clang/lib/Sema/SemaDeclCXX.cpp
  299 Sema::ActOnParamDefaultArgument(Decl *param, SourceLocation EqualLoc,
  344 void Sema::ActOnParamUnparsedDefaultArgument(Decl *param,
  357 void Sema::ActOnParamDefaultArgumentError(Decl *param,
  555       if (New->getFriendObjectKind() == Decl::FOK_None ||
  653               New->getFriendObjectKind() == Decl::FOK_None)) {
  676   if (Old->getFriendObjectKind() == Decl::FOK_Undeclared &&
 1772   for (const auto *DclIt : DS->decls()) {
 1774     case Decl::StaticAssert:
 1775     case Decl::Using:
 1776     case Decl::UsingShadow:
 1777     case Decl::UsingDirective:
 1778     case Decl::UnresolvedUsingTypename:
 1779     case Decl::UnresolvedUsingValue:
 1785     case Decl::Typedef:
 1786     case Decl::TypeAlias: {
 1803     case Decl::Enum:
 1804     case Decl::CXXRecord:
 1819     case Decl::EnumConstant:
 1820     case Decl::IndirectField:
 1821     case Decl::ParmVar:
 1826     case Decl::Var:
 1827     case Decl::Decomposition: {
 1874     case Decl::NamespaceAlias:
 1875     case Decl::Function:
 1910                                           llvm::SmallSet<Decl*, 16> &Inits,
 2221         llvm::SmallSet<Decl*, 16> Inits;
 2548 Sema::ActOnBaseSpecifier(Decl *classdecl, SourceRange SpecifierRange,
 2726 void Sema::ActOnBaseSpecifiers(Decl *ClassDecl,
 3404         for (const auto *D : cast<CXXRecordDecl>(CurContext)->decls()) {
 3810     for (auto *I : RD->decls()) {
 3867 void Sema::ActOnFinishCXXInClassMemberInitializer(Decl *D,
 3968 Sema::ActOnMemInitializer(Decl *ConstructorD,
 3984 Sema::ActOnMemInitializer(Decl *ConstructorD,
 4046 Sema::BuildMemInitializer(Decl *ConstructorD,
 5062   for (auto *Mem : ClassDecl->decls()) {
 5301 void Sema::ActOnMemInitializers(Decl *ConstructorDecl,
 5491 void Sema::ActOnDefaultCtorInitializers(Decl *CDtorDecl) {
 5720   for (auto *D : RD->decls()) {
 5767   for (Decl *Member : Class->decls()) {
 5823   for (Decl *Member : Class->decls()) {
 5891     for (Decl *Member : Class->decls()) {
 5937   for (Decl *Member : Class->decls()) {
 6011           if (FD->getFriendObjectKind() == Decl::FOK_None)
 8366     Scope *S, SourceLocation RLoc, Decl *TagDecl, SourceLocation LBrac,
 8467 unsigned Sema::ActOnReenterTemplateScope(Scope *S, Decl *D) {
 8518 void Sema::ActOnStartDelayedMemberDeclarations(Scope *S, Decl *RecordD) {
 8525 void Sema::ActOnFinishDelayedMemberDeclarations(Scope *S, Decl *RecordD) {
 8550 void Sema::ActOnStartDelayedCXXMethodDeclaration(Scope *S, Decl *MethodD) {
 8558 void Sema::ActOnDelayedCXXMethodParameter(Scope *S, Decl *ParamD) {
 8580 void Sema::ActOnFinishDelayedCXXMethodDeclaration(Scope *S, Decl *MethodD) {
 9070 Decl *Sema::ActOnConversionDeclarator(CXXConversionDecl *Conversion) {
 9285     for (auto *I : PrevNS->decls())
 9305 Decl *Sema::ActOnStartNamespaceDef(
 9458 void Sema::ActOnFinishNamespaceDef(Decl *Dcl, SourceLocation RBrace) {
 9467     Dcl->setModuleOwnershipKind(Decl::ModuleOwnershipKind::VisibleWhenImported);
 9775     case Decl::TranslationUnit:
 9777     case Decl::LinkageSpec:
 9830 Decl *Sema::ActOnUsingDirective(Scope *S, SourceLocation UsingLoc,
 9926 Decl *Sema::ActOnUsingDeclaration(Scope *S, AccessSpecifier AS,
10430                !(D->getIdentifierNamespace() & Decl::IDNS_Ordinary))
10960 Decl *Sema::ActOnAliasDeclaration(Scope *S, AccessSpecifier AS,
10964                                   TypeResult Type, Decl *DeclFromDeclSpec) {
11116 Decl *Sema::ActOnNamespaceAliasDef(Scope *S, SourceLocation NamespaceLoc,
11534 void Sema::ActOnFinishDelayedMemberInitializers(Decl *D) {
11833 void Sema::ActOnFinishCXXNonNestedClass(Decl *D) {
14192 Decl *Sema::ActOnStartLinkageSpecification(Scope *S, SourceLocation ExternLoc,
14232 Decl *Sema::ActOnFinishLinkageSpecification(Scope *S,
14233                                             Decl *LinkageSpec,
14243 Decl *Sema::ActOnEmptyDeclaration(Scope *S,
14246   Decl *ED = EmptyDecl::Create(Context, CurContext, SemiLoc);
14385 Decl *Sema::ActOnExceptionDeclarator(Scope *S, Declarator &D) {
14436 Decl *Sema::ActOnStaticAssertDeclaration(SourceLocation StaticAssertLoc,
14450 Decl *Sema::BuildStaticAssertDeclaration(SourceLocation StaticAssertLoc,
14510   Decl *Decl = StaticAssertDecl::Create(Context, CurContext, StaticAssertLoc,
14593 Decl *Sema::ActOnTemplatedFriendTag(Scope *S, SourceLocation FriendLoc,
14727 Decl *Sema::ActOnFriendTypeDecl(Scope *S, const DeclSpec &DS,
14800   Decl *D;
15135 void Sema::SetDeclDeleted(Decl *Dcl, SourceLocation DelLoc) {
15203 void Sema::SetDeclDefaulted(Decl *Dcl, SourceLocation DefaultLoc) {
15482 void Sema::ActOnPureSpecifier(Decl *D, SourceLocation ZeroLoc) {
15493 static bool isNonlocalVariable(const Decl *D) {
15507 void Sema::ActOnCXXEnterDeclInitializer(Scope *S, Decl *D) {
15528 void Sema::ActOnCXXExitDeclInitializer(Scope *S, Decl *D) {
15551   Decl *Dcl = ActOnDeclarator(S, D);
16105 void Sema::actOnDelayedExceptionSpecification(Decl *MethodD,
tools/clang/lib/Sema/SemaDeclObjC.cpp
  328 void Sema::AddAnyMethodToGlobalPool(Decl *D) {
  361 void Sema::ActOnStartOfObjCMethodDef(Scope *FnBodyScope, Decl *D) {
  771                                                 ArrayRef<Decl *> typeParamsIn,
  975 Decl *Sema::ActOnStartClassInterface(
  980     Decl *const *ProtoRefs, unsigned NumProtoRefs,
 1105 void Sema::ActOnTypedefedProtocols(SmallVectorImpl<Decl *> &ProtocolRefs,
 1132 Decl *Sema::ActOnCompatibilityAlias(SourceLocation AtLoc,
 1207 Decl *Sema::ActOnStartProtocolInterface(
 1209     SourceLocation ProtocolLoc, Decl *const *ProtoRefs, unsigned NumProtoRefs,
 1295                               SmallVectorImpl<Decl *> &Protocols) {
 1416        SmallVectorImpl<Decl *> &protocols,
 1772   SmallVector<Decl *, 8> DeclsInGroup;
 1797 Decl *Sema::ActOnStartCategoryInterface(
 1801     Decl *const *ProtoRefs, unsigned NumProtoRefs,
 1893 Decl *Sema::ActOnStartCategoryImplementation(
 1959 Decl *Sema::ActOnStartClassImplementation(
 2092 Sema::ActOnFinishObjCImplementation(Decl *ObjCImpDecl, ArrayRef<Decl *> Decls) {
 2092 Sema::ActOnFinishObjCImplementation(Decl *ObjCImpDecl, ArrayRef<Decl *> Decls) {
 2093   SmallVector<Decl *, 64> DeclsInGroup;
 2097     Decl *Dcl = Decls[i];
 2302 static bool objcModifiersConflict(Decl::ObjCDeclQualifier x,
 2303                                   Decl::ObjCDeclQualifier y) {
 2304   return (x & ~Decl::OBJC_TQ_CSNullability) !=
 2305          (y & ~Decl::OBJC_TQ_CSNullability);
 2343              ((MethodImpl->getObjCDeclQualifier() & Decl::OBJC_TQ_CSNullability)
 2347              ((MethodDecl->getObjCDeclQualifier() & Decl::OBJC_TQ_CSNullability)
 2429            ((ImplVar->getObjCDeclQualifier() & Decl::OBJC_TQ_CSNullability)
 2433            ((IfaceVar->getObjCDeclQualifier() & Decl::OBJC_TQ_CSNullability)
 3035   SmallVector<Decl *, 8> DeclsInGroup;
 3400   if (cast<Decl>(Method->getDeclContext())->isInvalidDecl())
 3782     case Decl::ObjCInterface:
 3784     case Decl::ObjCProtocol:
 3786     case Decl::ObjCCategory:
 3790     case Decl::ObjCImplementation:
 3792     case Decl::ObjCCategoryImpl:
 3891 Decl *Sema::ActOnAtEnd(Scope *S, SourceRange AtEnd, ArrayRef<Decl *> allMethods,
 3891 Decl *Sema::ActOnAtEnd(Scope *S, SourceRange AtEnd, ArrayRef<Decl *> allMethods,
 3899   Decl *ClassDecl = OCD;
 4125 static Decl::ObjCDeclQualifier
 4472         method->getObjCDeclQualifier() & Decl::OBJC_TQ_CSNullability,
 4475         prevMethod->getObjCDeclQualifier() & Decl::OBJC_TQ_CSNullability);
 4489           param->getObjCDeclQualifier() & Decl::OBJC_TQ_CSNullability,
 4491           prevParam->getObjCDeclQualifier() & Decl::OBJC_TQ_CSNullability);
 4539 Decl *Sema::ActOnMethodDeclaration(
 4554   Decl *ClassDecl = cast<ObjCContainerDecl>(CurContext);
 4791 bool Sema::CheckObjCDeclScope(Decl *D) {
 4810 void Sema::ActOnDefs(Scope *S, Decl *TagD, SourceLocation DeclStart,
 4812                      SmallVectorImpl<Decl*> &Decls) {
 4831     Decl *FD = ObjCAtDefsFieldDecl::Create(Context, Record,
 4840   for (SmallVectorImpl<Decl*>::iterator D = Decls.begin();
 4897 Decl *Sema::ActOnObjCExceptionDecl(Scope *S, Declarator &D) {
tools/clang/lib/Sema/SemaExceptionSpec.cpp
  983 static CanThrowResult canCalleeThrow(Sema &S, const Expr *E, const Decl *D) {
tools/clang/lib/Sema/SemaExpr.cpp
   78       cast<Decl>(CurContext)->getAvailability() != AR_Unavailable)
   91       const Decl *DC = cast_or_null<Decl>(S.getCurObjCLexicalContext());
   91       const Decl *DC = cast_or_null<Decl>(S.getCurObjCLexicalContext());
 3016     case Decl::ObjCAtDefsField:
 3021     case Decl::EnumConstant:
 3022     case Decl::UnresolvedUsingValue:
 3023     case Decl::OMPDeclareReduction:
 3024     case Decl::OMPDeclareMapper:
 3032     case Decl::Field:
 3033     case Decl::IndirectField:
 3034     case Decl::ObjCIvar:
 3046     case Decl::NonTypeTemplateParm: {
 3060     case Decl::Var:
 3061     case Decl::VarTemplateSpecialization:
 3062     case Decl::VarTemplatePartialSpecialization:
 3063     case Decl::Decomposition:
 3064     case Decl::OMPCapturedExpr:
 3074     case Decl::ImplicitParam:
 3075     case Decl::ParmVar: {
 3092     case Decl::Binding: {
 3107     case Decl::Function: {
 3147     case Decl::CXXDeductionGuide:
 3150     case Decl::MSProperty:
 3154     case Decl::CXXMethod:
 3173     case Decl::CXXConversion:
 3174     case Decl::CXXDestructor:
 3175     case Decl::CXXConstructor:
 3201   Decl *currentDecl = nullptr;
12505   const Decl *D = DRE->getDecl();
12781       Decl *D = getDeclFromExpr(E);
14086     Decl *ManglingContextDecl;
15071     ExpressionEvaluationContext NewContext, Decl *LambdaContextDecl,
15084   Decl *ClosureContextDecl = ExprEvalContexts.back().ManglingContextDecl;
16865                                Decl *D, Expr *E, bool MightBeOdrUse) {
16940 void Sema::MarkAnyDeclReferenced(SourceLocation Loc, Decl *D,
16983       if (Decl *D = Arg.getAsDecl())
tools/clang/lib/Sema/SemaExprCXX.cpp
 1116                                          Decl *ContextDecl,
 3617 Sema::ConditionResult Sema::ActOnConditionVariable(Decl *ConditionVar,
 6776           if (Decl *CD = (CE ? CE->getCalleeDecl() : nullptr)) {
tools/clang/lib/Sema/SemaExprMember.cpp
  430 static Decl *FindGetterSetterNameDeclFromProtocolList(const ObjCProtocolDecl*PDecl,
  442     if (Decl *D = FindGetterSetterNameDeclFromProtocolList(I, Member, Sel,
  449 static Decl *FindGetterSetterNameDecl(const ObjCObjectPointerType *QIdTy,
  454   Decl *GDecl = nullptr;
  740                                    Decl *ObjCImpDecl, bool HasTemplateArgs,
 1248                                    Decl *ObjCImpDecl, bool HasTemplateArgs,
 1366         Decl *D = cast<Decl>(IV->getDeclContext());
 1366         Decl *D = cast<Decl>(IV->getDeclContext());
 1497       if (Decl *PMDecl =
 1515           if (Decl *SDecl = FindGetterSetterNameDecl(OPT,
 1691                                        Decl *ObjCImpDecl) {
tools/clang/lib/Sema/SemaInit.cpp
 6659   const Decl *D = nullptr;
 6662   IndirectLocalPathEntry(EntryKind K, Expr *E, const Decl *D)
 6712 static bool isInStlNamespace(const Decl *D) {
 7755     if (Decl *D = Entity.getDecl())
tools/clang/lib/Sema/SemaLambda.cpp
  275 std::tuple<MangleNumberingContext *, Decl *>
  279   Decl *ManglingContextDecl = ExprEvalContexts.back().ManglingContextDecl;
  434     Optional<std::tuple<unsigned, bool, Decl *>> Mangling) {
  438     Decl *ManglingContextDecl;
  461   Decl *ManglingContextDecl;
 1248   SmallVector<Decl*, 4> Fields(Class->fields());
 1672     Decl *TemplateOrNonTemplateCallOperatorDecl =
 1675         : cast<Decl>(CallOperator);
 1794     SmallVector<Decl*, 4> Fields(Class->fields());
tools/clang/lib/Sema/SemaLookup.cpp
  218     IDNS = Decl::IDNS_Ordinary;
  220       IDNS |= Decl::IDNS_Tag | Decl::IDNS_Member | Decl::IDNS_Namespace;
  220       IDNS |= Decl::IDNS_Tag | Decl::IDNS_Member | Decl::IDNS_Namespace;
  220       IDNS |= Decl::IDNS_Tag | Decl::IDNS_Member | Decl::IDNS_Namespace;
  222         IDNS |= Decl::IDNS_TagFriend | Decl::IDNS_OrdinaryFriend;
  222         IDNS |= Decl::IDNS_TagFriend | Decl::IDNS_OrdinaryFriend;
  225       IDNS |= Decl::IDNS_LocalExtern;
  232     IDNS = Decl::IDNS_NonMemberOperator;
  237       IDNS = Decl::IDNS_Type;
  245         IDNS |= Decl::IDNS_Tag | Decl::IDNS_TagFriend | Decl::IDNS_Namespace;
  245         IDNS |= Decl::IDNS_Tag | Decl::IDNS_TagFriend | Decl::IDNS_Namespace;
  245         IDNS |= Decl::IDNS_Tag | Decl::IDNS_TagFriend | Decl::IDNS_Namespace;
  247       IDNS = Decl::IDNS_Tag;
  252     IDNS = Decl::IDNS_Label;
  256     IDNS = Decl::IDNS_Member;
  258       IDNS |= Decl::IDNS_Tag | Decl::IDNS_Ordinary;
  258       IDNS |= Decl::IDNS_Tag | Decl::IDNS_Ordinary;
  262     IDNS = Decl::IDNS_Type | Decl::IDNS_Namespace;
  262     IDNS = Decl::IDNS_Type | Decl::IDNS_Namespace;
  266     IDNS = Decl::IDNS_Namespace;
  271     IDNS = Decl::IDNS_Ordinary | Decl::IDNS_Tag | Decl::IDNS_Member |
  271     IDNS = Decl::IDNS_Ordinary | Decl::IDNS_Tag | Decl::IDNS_Member |
  271     IDNS = Decl::IDNS_Ordinary | Decl::IDNS_Tag | Decl::IDNS_Member |
  272            Decl::IDNS_Using | Decl::IDNS_TagFriend | Decl::IDNS_OrdinaryFriend |
  272            Decl::IDNS_Using | Decl::IDNS_TagFriend | Decl::IDNS_OrdinaryFriend |
  272            Decl::IDNS_Using | Decl::IDNS_TagFriend | Decl::IDNS_OrdinaryFriend |
  273            Decl::IDNS_LocalExtern;
  277     IDNS = Decl::IDNS_ObjCProtocol;
  281     IDNS = Decl::IDNS_OMPReduction;
  285     IDNS = Decl::IDNS_OMPMapper;
  289     IDNS = Decl::IDNS_Ordinary | Decl::IDNS_Tag | Decl::IDNS_Member
  289     IDNS = Decl::IDNS_Ordinary | Decl::IDNS_Tag | Decl::IDNS_Member
  289     IDNS = Decl::IDNS_Ordinary | Decl::IDNS_Tag | Decl::IDNS_Member
  290       | Decl::IDNS_Using | Decl::IDNS_Namespace | Decl::IDNS_ObjCProtocol
  290       | Decl::IDNS_Using | Decl::IDNS_Namespace | Decl::IDNS_ObjCProtocol
  290       | Decl::IDNS_Using | Decl::IDNS_Namespace | Decl::IDNS_ObjCProtocol
  291       | Decl::IDNS_Type;
  350 static DeclContext *getContextForScopeMatching(Decl *D) {
  447   for (Decl *Prev = DUnderlying->getPreviousDecl(); Prev;
 1201                                  Decl::IDNS_LocalExtern) {
 1203                          (Decl::IDNS_Ordinary | Decl::IDNS_NonMemberOperator));
 1203                          (Decl::IDNS_Ordinary | Decl::IDNS_NonMemberOperator));
 1523 static Module *getDefiningModule(Sema &S, Decl *Entity) {
 1545   return getDefiningModule(S, cast<Decl>(Context));
 1622   for (auto *Redecl : D->redecls()) {
 1712       if (const auto *DCD = dyn_cast<Decl>(DC)) {
 1712       if (const auto *DCD = dyn_cast<Decl>(DC)) {
 2143   Decl *D = (*First)->getUnderlyingDecl();
 2565     std::set<Decl *> DeclsPrinted;
 2569       Decl *D = Path->Decls.front();
 3034   Decl *D = LookupSingleName(TUScope, II, IdLoc,
 3395     Decl *D = F.next();
 3573         if (D->getIdentifierNamespace() & Decl::IDNS_Ordinary) {
 3679           (IDNS & (Decl::IDNS_Member | Decl::IDNS_Ordinary |
 3679           (IDNS & (Decl::IDNS_Member | Decl::IDNS_Ordinary |
 3680                    Decl::IDNS_ObjCProtocol)))
 3684       if (((D->getIdentifierNamespace() & Decl::IDNS_ObjCProtocol)
 3685            || (IDNS & Decl::IDNS_ObjCProtocol)) &&
 3953       SmallVector<Decl *, 8> ScopeDecls(S->decls().begin(), S->decls().end());
 3954       for (Decl *D : ScopeDecls) {
 5177   for (Decl *D : candidate) {
tools/clang/lib/Sema/SemaModule.cpp
   49     S.Diag(cast<Decl>(DC)->getBeginLoc(),
   85   TU->setModuleOwnershipKind(Decl::ModuleOwnershipKind::Visible);
  240   TU->setModuleOwnershipKind(Decl::ModuleOwnershipKind::ModulePrivate);
  302   TU->setModuleOwnershipKind(Decl::ModuleOwnershipKind::ModulePrivate);
  336 static const ExportDecl *getEnclosingExportDecl(const Decl *D) {
  455       cast<Decl>(DC)->setModuleOwnershipKind(
  457               ? Decl::ModuleOwnershipKind::VisibleWhenImported
  458               : Decl::ModuleOwnershipKind::Visible);
  459       cast<Decl>(DC)->setLocalOwningModule(Mod);
  496       cast<Decl>(DC)->setLocalOwningModule(getCurrentModule());
  498         cast<Decl>(DC)->setModuleOwnershipKind(
  499             Decl::ModuleOwnershipKind::Unowned);
  525 Decl *Sema::ActOnStartExportDecl(Scope *S, SourceLocation ExportLoc,
  581   D->setModuleOwnershipKind(Decl::ModuleOwnershipKind::VisibleWhenImported);
  598 static llvm::Optional<UnnamedDeclKind> getUnnamedDeclKind(Decl *D) {
  634 static void diagExportedUnnamedDecl(Sema &S, UnnamedDeclKind UDK, Decl *D,
  643 static bool checkExportedDecl(Sema &S, Decl *D, SourceLocation BlockStart) {
  685   for (auto *D : DC->decls())
  691 Decl *Sema::ActOnFinishExportDecl(Scope *S, Decl *D, SourceLocation RBraceLoc) {
  691 Decl *Sema::ActOnFinishExportDecl(Scope *S, Decl *D, SourceLocation RBraceLoc) {
  701     for (auto *Child : ED->decls()) {
tools/clang/lib/Sema/SemaObjCProperty.cpp
  177 Decl *Sema::ActOnProperty(Scope *S, SourceLocation AtLoc,
 1044 Decl *Sema::ActOnPropertyImplDecl(Scope *S,
 1926 void Sema::DefaultSynthesizeProperties(Scope *S, Decl *D,
 2230         for (auto *getterRedecl : method->redecls()) {
 2538 void Sema::CheckObjCPropertyAttributes(Decl *PDecl,
tools/clang/lib/Sema/SemaOpenMP.cpp
  143     const Decl *PossiblyLoopCounter = nullptr;
  372   void resetPossibleLoopCounter(const Decl *D = nullptr) {
  377   const Decl *getPossiblyLoopCunter() const {
 2240     if (ND && ((isa<VarDecl>(ND) && ND->getKind() == Decl::Var) ||
 3007                   const Decl *CCD = CCI->getAssociatedDeclaration();
 3008                   const Decl *SCD = SC.getAssociatedDeclaration();
 3739             for (Decl *D : DS->decls())
 4137   llvm::DenseMap<CanonicalDeclPtr<Decl>, CanonicalDeclPtr<VarDecl>>
 4726   Decl *ADecl = DG.get().getSingleDecl();
 4748   llvm::DenseMap<const Decl *, const Expr *> UniformedArgs;
 4775   llvm::DenseMap<const Decl *, const Expr *> AlignedArgs;
 4842   llvm::DenseMap<const Decl *, const Expr *> LinearArgs;
 4970   Decl *ADecl = DG.get().getSingleDecl();
 6487         const Decl *LD = DSAStack->getPossiblyLoopCunter();
 6851                            MutableArrayRef<Decl *> PreInits) {
 6865     SmallVector<Decl *, 16> PreInits;
12178   SmallVector<Decl *, 4> ExprCaptures;
12457   SmallVector<Decl *, 4> ExprCaptures;
12826     Decl *PrevD = nullptr;
12946   SmallVector<Decl *, 4> ExprCaptures;
13801   SmallVector<Decl *, 4> ExprCaptures;
14137     Decl *D = DE->getDecl();
15581     AccessSpecifier AS, Decl *PrevDeclInScope) {
15582   SmallVector<Decl *, 8> Decls;
15660 void Sema::ActOnOpenMPDeclareReductionCombinerStart(Scope *S, Decl *D) {
15707 void Sema::ActOnOpenMPDeclareReductionCombinerEnd(Decl *D, Expr *Combiner) {
15721 VarDecl *Sema::ActOnOpenMPDeclareReductionInitializerStart(Scope *S, Decl *D) {
15768 void Sema::ActOnOpenMPDeclareReductionInitializerEnd(Decl *D, Expr *Initializer,
15791   for (Decl *D : DeclReductions.get()) {
15836     Decl *PrevDeclInScope) {
16247                                      Sema &SemaRef, Decl *D) {
16286 void Sema::checkDeclIsAllowedInOpenMPTarget(Expr *E, Decl *D,
tools/clang/lib/Sema/SemaOverload.cpp
 9764 void MaybeEmitInheritedConstructorNote(Sema &S, Decl *FoundDecl) {
10176 static void DiagnoseArityMismatch(Sema &S, NamedDecl *Found, Decl *D,
10229 static TemplateDecl *getDescribedTemplate(Decl *Templated) {
10237 static void DiagnoseBadDeduction(Sema &S, NamedDecl *Found, Decl *Templated,
10567   case Decl::Kind::CXXConstructor:
10571   case Decl::Kind::CXXConversion:
10575   case Decl::Kind::CXXDeductionGuide:
tools/clang/lib/Sema/SemaPseudoObject.cpp
  697       S.getCurLexicalContext()->getDeclKind() != Decl::ObjCCategoryImpl &&
  698       S.getCurLexicalContext()->getDeclKind() != Decl::ObjCImplementation) {
tools/clang/lib/Sema/SemaStmt.cpp
   90   Decl *decl = DG.getSingleDecl();
  294     if (const Decl *FD = CE->getCalleeDecl()) {
  406       Decl *D = *cast<DeclStmt>(Elts[i])->decl_begin();
 1775       for (auto *DI : DS->decls()) {
 2117   Decl *LoopVar = DS->getSingleDecl();
 2342   InvalidateOnErrorScope(Sema &SemaRef, Decl *D, bool Enabled)
 2350   Decl *D;
 2997   if (VD->getKind() != Decl::Var &&
 2998       !((CESK & CES_AllowParameters) && VD->getKind() == Decl::ParmVar))
 3426   for (auto *TmpD : R->decls())
 3821                            SourceLocation RParen, Decl *Parm,
 3939 Sema::ActOnCXXCatchBlock(SourceLocation CatchLoc, Decl *ExDecl,
 4416   SmallVector<Decl*, 4> Fields(Record->fields());
tools/clang/lib/Sema/SemaTemplate.cpp
  830 void Sema::DiagnoseTemplateParameterShadow(SourceLocation Loc, Decl *PrevDecl) {
  847 TemplateDecl *Sema::AdjustDeclIfTemplate(Decl *&D) {
 3645 static TemplateSpecializationKind getTemplateSpecializationKind(Decl *D);
 3979     for (Decl *Prev = PrevDecl; Prev; Prev = Prev->getPreviousDecl()) {
 4773                                               Decl *Param,
 5766                                    Decl *Entity = nullptr) {
 7419 static TemplateSpecializationKind getTemplateSpecializationKind(Decl *D) {
 7731       Decl *Param = TemplateParams->getParam(I);
 7935     for (Decl *Prev = PrevDecl; Prev; Prev = Prev->getPreviousDecl()) {
 8040 Decl *Sema::ActOnTemplateDeclarator(Scope *S,
 8043   Decl *NewDecl = HandleDeclarator(S, D, TemplateParameterLists);
 8048 Decl *Sema::ActOnConceptDefinition(Scope *S,
 8119   for (Decl *Prev = D; Prev && !PrevDiagLoc.isValid();
 8198       for (Decl *Prev = PrevDecl; Prev; Prev = Prev->getPreviousDecl()) {
 8283       for (Decl *Prev = PrevDecl; Prev; Prev = Prev->getPreviousDecl()) {
 8338   SmallVector<std::pair<DiscardReason, Decl *>, 8> DiscardedCandidates;
 8536   bool isFriend = (FD->getFriendObjectKind() != Decl::FOK_None);
 8700   if (Member->getFriendObjectKind() != Decl::FOK_None) {
 9255   Decl *TagD = ActOnTag(S, TagSpec, Sema::TUK_Reference,
 9998   Decl *Referenced = nullptr;
10074           declaresSameEntity(LookupRD, cast<Decl>(FoundRD->getParent())))
10232     Decl *Param = Params->getParam(I);
10316 void Sema::MarkAsLateParsedTemplate(FunctionDecl *FD, Decl *FnD,
tools/clang/lib/Sema/SemaTemplateDeduction.cpp
  199 static bool isSameDeclaration(Decl *X, Decl *Y) {
  199 static bool isSameDeclaration(Decl *X, Decl *Y) {
  634 static TemplateParameter makeTemplateParameter(Decl *D) {
 2694 static DeclContext *getAsDeclContextOrEnclosing(Decl *D) {
 2763     Decl *Param = const_cast<NamedDecl *>(
tools/clang/lib/Sema/SemaTemplateInstantiate.cpp
  223     Decl *Entity, NamedDecl *Template, ArrayRef<TemplateArgument> TemplateArgs,
  256     Sema &SemaRef, SourceLocation PointOfInstantiation, Decl *Entity,
  492       Decl *D = Active->Entity;
  876     Decl *TransformDecl(SourceLocation Loc, Decl *D);
  876     Decl *TransformDecl(SourceLocation Loc, Decl *D);
  878     void transformAttrs(Decl *Old, Decl *New) {
  878     void transformAttrs(Decl *Old, Decl *New) {
  882     void transformedLocalDecl(Decl *Old, ArrayRef<Decl *> NewDecls) {
  882     void transformedLocalDecl(Decl *Old, ArrayRef<Decl *> NewDecls) {
  885         for (auto *New : NewDecls)
  893       Decl *New = NewDecls.front();
  919     Decl *TransformDefinition(SourceLocation Loc, Decl *D);
  919     Decl *TransformDefinition(SourceLocation Loc, Decl *D);
 1045 Decl *TemplateInstantiator::TransformDecl(SourceLocation Loc, Decl *D) {
 1045 Decl *TemplateInstantiator::TransformDecl(SourceLocation Loc, Decl *D) {
 1080 Decl *TemplateInstantiator::TransformDefinition(SourceLocation Loc, Decl *D) {
 1080 Decl *TemplateInstantiator::TransformDefinition(SourceLocation Loc, Decl *D) {
 1081   Decl *Inst = getSema().SubstDecl(D, getSema().CurContext, TemplateArgs);
 1441   llvm::PointerUnion<Decl *, DeclArgumentPack *> *Found
 1445   Decl *TransformedDecl;
 1461     TransformedDecl = Found->get<Decl*>();
 2151   SmallVector<Decl*, 4> Fields;
 2157   for (auto *Member : Pattern->decls()) {
 2180     Decl *NewMember = Instantiator.Visit(Member);
 2667   for (auto *D : Instantiation->decls()) {
 2976 static const Decl *getCanonicalParmVarDecl(const Decl *D) {
 2976 static const Decl *getCanonicalParmVarDecl(const Decl *D) {
 2994 llvm::PointerUnion<Decl *, LocalInstantiationScope::DeclArgumentPack *> *
 3001     const Decl *CheckD = D;
 3043 void LocalInstantiationScope::InstantiatedLocal(const Decl *D, Decl *Inst) {
 3043 void LocalInstantiationScope::InstantiatedLocal(const Decl *D, Decl *Inst) {
 3045   llvm::PointerUnion<Decl *, DeclArgumentPack *> &Stored = LocalDecls[D];
 3064 void LocalInstantiationScope::InstantiatedLocalPackArg(const Decl *D,
 3071 void LocalInstantiationScope::MakeInstantiatedLocalArgPack(const Decl *D) {
 3081   llvm::PointerUnion<Decl *, DeclArgumentPack *> &Stored = LocalDecls[D];
tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
   30 static bool isDeclWithinFunction(const Decl *D) {
   82     const AlignedAttr *Aligned, Decl *New, bool IsPackExpansion) {
  101     const AlignedAttr *Aligned, Decl *New) {
  139     const AssumeAlignedAttr *Aligned, Decl *New) {
  162     const AlignValueAttr *Aligned, Decl *New) {
  173     const AllocAlignAttr *Align, Decl *New) {
  183     const Attr *A, Expr *OldCond, const Decl *Tmpl, FunctionDecl *New) {
  214     const EnableIfAttr *EIA, const Decl *Tmpl, FunctionDecl *New) {
  225     const DiagnoseIfAttr *DIA, const Decl *Tmpl, FunctionDecl *New) {
  239     const CUDALaunchBoundsAttr &Attr, Decl *New) {
  263                              const ModeAttr &Attr, Decl *New) {
  271     const OMPDeclareSimdDeclAttr &Attr, Decl *New) {
  354     const OMPDeclareVariantAttr &Attr, Decl *New) {
  414     const AMDGPUFlatWorkGroupSizeAttr &Attr, Decl *New) {
  457     const AMDGPUWavesPerEUAttr &Attr, Decl *New) {
  479     const MultiLevelTemplateArgumentList &TemplateArgs, const Decl *Tmpl,
  480     Decl *New, LateInstantiatedAttrVec *LateAttrs,
  513                             const Decl *Tmpl, Decl *New,
  513                             const Decl *Tmpl, Decl *New,
  660 Decl *
  665 Decl *
  670 Decl *TemplateDeclInstantiator::VisitPragmaDetectMismatchDecl(
  675 Decl *
  680 Decl *
  688 Decl *
  693 Decl *
  707 Decl *TemplateDeclInstantiator::InstantiateTypedefNameDecl(TypedefNameDecl *D,
  785 Decl *TemplateDeclInstantiator::VisitTypedefDecl(TypedefDecl *D) {
  786   Decl *Typedef = InstantiateTypedefNameDecl(D, /*IsTypeAlias=*/false);
  792 Decl *TemplateDeclInstantiator::VisitTypeAliasDecl(TypeAliasDecl *D) {
  793   Decl *Typedef = InstantiateTypedefNameDecl(D, /*IsTypeAlias=*/true);
  799 Decl *
  842 Decl *TemplateDeclInstantiator::VisitBindingDecl(BindingDecl *D) {
  850 Decl *TemplateDeclInstantiator::VisitDecompositionDecl(DecompositionDecl *D) {
  867 Decl *TemplateDeclInstantiator::VisitVarDecl(VarDecl *D) {
  871 Decl *TemplateDeclInstantiator::VisitVarDecl(VarDecl *D,
  929 Decl *TemplateDeclInstantiator::VisitAccessSpecDecl(AccessSpecDecl *D) {
  937 Decl *TemplateDeclInstantiator::VisitFieldDecl(FieldDecl *D) {
  990     cast<Decl>(Owner)->setInvalidDecl();
 1019 Decl *TemplateDeclInstantiator::VisitMSPropertyDecl(MSPropertyDecl *D) {
 1064 Decl *TemplateDeclInstantiator::VisitIndirectFieldDecl(IndirectFieldDecl *D) {
 1092 Decl *TemplateDeclInstantiator::VisitFriendDecl(FriendDecl *D) {
 1128   Decl *NewND = Visit(ND);
 1140 Decl *TemplateDeclInstantiator::VisitStaticAssertDecl(StaticAssertDecl *D) {
 1159 Decl *TemplateDeclInstantiator::VisitEnumDecl(EnumDecl *D) {
 1246   SmallVector<Decl*, 4> Enumerators;
 1299 Decl *TemplateDeclInstantiator::VisitEnumConstantDecl(EnumConstantDecl *D) {
 1303 Decl *
 1308 Decl *TemplateDeclInstantiator::VisitClassTemplateDecl(ClassTemplateDecl *D) {
 1309   bool isFriend = (D->getFriendObjectKind() != Decl::FOK_None);
 1400           if (cast<Decl>(DCParent)->isInStdNamespace())
 1495 Decl *
 1519 Decl *TemplateDeclInstantiator::VisitVarTemplateDecl(VarTemplateDecl *D) {
 1579 Decl *TemplateDeclInstantiator::VisitVarTemplatePartialSpecializationDecl(
 1600 Decl *
 1633   bool isFriend = (InstTemplate->getFriendObjectKind() != Decl::FOK_None);
 1652 Decl *TemplateDeclInstantiator::VisitCXXRecordDecl(CXXRecordDecl *D) {
 1764 Decl *TemplateDeclInstantiator::VisitFunctionDecl(FunctionDecl *D,
 1783     isFriend = (FunctionTemplate->getFriendObjectKind() != Decl::FOK_None);
 1785     isFriend = (D->getFriendObjectKind() != Decl::FOK_None);
 1789     !(isa<Decl>(Owner) &&
 1790       cast<Decl>(Owner)->isDefinedOutsideFunctionOrMethod());
 1944       Decl *Temp = SemaRef.FindInstantiatedDecl(D->getLocation(),
 2061       PrincipalDecl->isInIdentifierNamespace(Decl::IDNS_Ordinary))
 2067 Decl *TemplateDeclInstantiator::VisitCXXMethodDecl(
 2089     isFriend = (FunctionTemplate->getFriendObjectKind() != Decl::FOK_None);
 2091     isFriend = (D->getFriendObjectKind() != Decl::FOK_None);
 2094     !(isa<Decl>(Owner) &&
 2095       cast<Decl>(Owner)->isDefinedOutsideFunctionOrMethod());
 2263       Decl *Temp = SemaRef.FindInstantiatedDecl(D->getLocation(),
 2384 Decl *TemplateDeclInstantiator::VisitCXXConstructorDecl(CXXConstructorDecl *D) {
 2388 Decl *TemplateDeclInstantiator::VisitCXXDestructorDecl(CXXDestructorDecl *D) {
 2392 Decl *TemplateDeclInstantiator::VisitCXXConversionDecl(CXXConversionDecl *D) {
 2396 Decl *TemplateDeclInstantiator::VisitParmVarDecl(ParmVarDecl *D) {
 2401 Decl *TemplateDeclInstantiator::VisitTemplateTypeParmDecl(
 2428 Decl *TemplateDeclInstantiator::VisitNonTypeTemplateParmDecl(
 2592 Decl *
 2711 Decl *TemplateDeclInstantiator::VisitUsingDirectiveDecl(UsingDirectiveDecl *D) {
 2731 Decl *TemplateDeclInstantiator::VisitUsingDecl(UsingDecl *D) {
 2839 Decl *TemplateDeclInstantiator::VisitUsingShadowDecl(UsingShadowDecl *D) {
 2844 Decl *TemplateDeclInstantiator::VisitConstructorUsingShadowDecl(
 2851 Decl *TemplateDeclInstantiator::instantiateUnresolvedUsingDecl(
 2898       Decl *Slice = instantiateUnresolvedUsingDecl(D, true);
 2947 Decl *TemplateDeclInstantiator::VisitUnresolvedUsingTypenameDecl(
 2952 Decl *TemplateDeclInstantiator::VisitUnresolvedUsingValueDecl(
 2957 Decl *TemplateDeclInstantiator::VisitUsingPackDecl(UsingPackDecl *D) {
 2973 Decl *TemplateDeclInstantiator::VisitClassScopeFunctionSpecializationDecl(
 2980 Decl *TemplateDeclInstantiator::VisitOMPThreadPrivateDecl(
 2998 Decl *TemplateDeclInstantiator::VisitOMPAllocateDecl(OMPAllocateDecl *D) {
 3024 Decl *TemplateDeclInstantiator::VisitOMPRequiresDecl(OMPRequiresDecl *D) {
 3029 Decl *TemplateDeclInstantiator::VisitOMPDeclareReductionDecl(
 3055             ->get<Decl *>());
 3129 Decl *
 3153             ->get<Decl *>());
 3218 Decl *TemplateDeclInstantiator::VisitOMPCapturedExprDecl(
 3223 Decl *TemplateDeclInstantiator::VisitFunctionDecl(FunctionDecl *D) {
 3227 Decl *
 3229   Decl *Inst = VisitFunctionDecl(D, nullptr);
 3235 Decl *TemplateDeclInstantiator::VisitCXXMethodDecl(CXXMethodDecl *D) {
 3239 Decl *TemplateDeclInstantiator::VisitRecordDecl(RecordDecl *D) {
 3243 Decl *
 3377 Decl *TemplateDeclInstantiator::VisitVarTemplateSpecializationDecl(
 3424 Decl *TemplateDeclInstantiator::VisitVarTemplateSpecializationDecl(
 3461 Decl *TemplateDeclInstantiator::VisitObjCAtDefsFieldDecl(ObjCAtDefsFieldDecl *D) {
 3465 Decl *TemplateDeclInstantiator::VisitFriendTemplateDecl(FriendTemplateDecl *D) {
 3476 Decl *TemplateDeclInstantiator::VisitConceptDecl(ConceptDecl *D) {
 3480 Decl *TemplateDeclInstantiator::VisitDecl(Decl *D) {
 3480 Decl *TemplateDeclInstantiator::VisitDecl(Decl *D) {
 3484 Decl *Sema::SubstDecl(Decl *D, DeclContext *Owner,
 3484 Decl *Sema::SubstDecl(Decl *D, DeclContext *Owner,
 3490   Decl *SubstD;
 5160 static bool isInstantiationOfUnresolvedUsingDecl(T *Pattern, Decl *Other,
 5203 static bool isInstantiationOf(ASTContext &Ctx, NamedDecl *D, Decl *Other) {
 5274     Decl* ID = FindInstantiatedDecl(Loc, D, TemplateArgs, true);
 5339         if (Decl *FD = Found->dyn_cast<Decl *>())
 5339         if (Decl *FD = Found->dyn_cast<Decl *>())
 5379       Decl *Inst = SubstDecl(D, CurContext, TemplateArgs);
 5388     Decl *Inst = SubstDecl(D, CurContext, TemplateArgs);
tools/clang/lib/Sema/SemaTemplateVariadic.cpp
  162     bool TraverseDecl(Decl *D) {
  686       llvm::PointerUnion<Decl *, DeclArgumentPack *> *Instantiation
  804         llvm::PointerUnion<Decl *, DeclArgumentPack *> *Instantiation
  807         if (Instantiation->is<Decl*>())
tools/clang/lib/Sema/SemaType.cpp
 1099              ArrayRef<Decl *> protocols,
 1144              ArrayRef<Decl *> Protocols,
 7841 bool Sema::hasStructuralCompatLayout(Decl *D, Decl *Suggested) {
 7841 bool Sema::hasStructuralCompatLayout(Decl *D, Decl *Suggested) {
 7842   llvm::DenseSet<std::pair<Decl *, Decl *>> NonEquivalentDecls;
 7842   llvm::DenseSet<std::pair<Decl *, Decl *>> NonEquivalentDecls;
tools/clang/lib/Sema/TreeTransform.h
  119   llvm::DenseMap<Decl *, Decl *> TransformedLocalDecls;
  119   llvm::DenseMap<Decl *, Decl *> TransformedLocalDecls;
  427   Decl *TransformDecl(SourceLocation Loc, Decl *D) {
  427   Decl *TransformDecl(SourceLocation Loc, Decl *D) {
  428     llvm::DenseMap<Decl *, Decl *>::iterator Known
  428     llvm::DenseMap<Decl *, Decl *>::iterator Known
  449   void transformAttrs(Decl *Old, Decl *New) { }
  449   void transformAttrs(Decl *Old, Decl *New) { }
  458   void transformedLocalDecl(Decl *Old, ArrayRef<Decl *> New) {
  458   void transformedLocalDecl(Decl *Old, ArrayRef<Decl *> New) {
  468   Decl *TransformDefinition(SourceLocation Loc, Decl *D) {
  468   Decl *TransformDefinition(SourceLocation Loc, Decl *D) {
  893   QualType RebuildUnresolvedUsingType(SourceLocation NameLoc, Decl *D);
 1373   StmtResult RebuildDeclStmt(MutableArrayRef<Decl *> Decls,
 5598   Decl *D = getDerived().TransformDecl(TL.getNameLoc(), T->getDecl());
 5863   Decl *D = getDerived().TransformDecl(TL.getNameLoc(),
 6756   Decl *LD = getDerived().TransformDecl(S->getDecl()->getLocation(),
 6995   Decl *LD = getDerived().TransformDecl(S->getLabel()->getLocation(),
 7050   SmallVector<Decl *, 4> Decls;
 7051   for (auto *D : S->decls()) {
 7052     Decl *Transformed = getDerived().TransformDefinition(D->getLocation(), D);
10164   Decl *LD = getDerived().TransformDecl(E->getLabel()->getLocation(),
10852     Decl *InstD = getDerived().TransformDecl(Old->getNameLoc(), OldD);
11500   Optional<std::tuple<unsigned, bool, Decl *>> Mangling;
11575       llvm::SmallVector<Decl*, 4> NewVDs;
13041                                                             Decl *D) {
tools/clang/lib/Serialization/ASTCommon.cpp
  266   case Decl::TranslationUnit:
  267   case Decl::ExternCContext:
  268   case Decl::Namespace:
  269   case Decl::LinkageSpec:
  270   case Decl::Export:
  274   case Decl::Enum:
  275   case Decl::Record:
  282   case Decl::CXXRecord:
  283   case Decl::ClassTemplateSpecialization:
  284   case Decl::ClassTemplatePartialSpecialization:
  288   case Decl::Function:
  289   case Decl::CXXMethod:
  290   case Decl::CXXConstructor:
  291   case Decl::CXXDestructor:
  292   case Decl::CXXConversion:
  293   case Decl::ObjCMethod:
  294   case Decl::Block:
  295   case Decl::Captured:
  298   case Decl::ObjCCategory:
  299   case Decl::ObjCCategoryImpl:
  300   case Decl::ObjCImplementation:
  303   case Decl::ObjCProtocol:
  312   case Decl::ObjCInterface:
  324   case Decl::TranslationUnit:
  325   case Decl::ExternCContext:
  329   case Decl::Namespace:
  330   case Decl::NamespaceAlias:
  331   case Decl::Typedef:
  332   case Decl::TypeAlias:
  333   case Decl::Enum:
  334   case Decl::Record:
  335   case Decl::CXXRecord:
  336   case Decl::ClassTemplateSpecialization:
  337   case Decl::ClassTemplatePartialSpecialization:
  338   case Decl::VarTemplateSpecialization:
  339   case Decl::VarTemplatePartialSpecialization:
  340   case Decl::Function:
  341   case Decl::CXXDeductionGuide:
  342   case Decl::CXXMethod:
  343   case Decl::CXXConstructor:
  344   case Decl::CXXDestructor:
  345   case Decl::CXXConversion:
  346   case Decl::UsingShadow:
  347   case Decl::ConstructorUsingShadow:
  348   case Decl::Var:
  349   case Decl::FunctionTemplate:
  350   case Decl::ClassTemplate:
  351   case Decl::VarTemplate:
  352   case Decl::TypeAliasTemplate:
  353   case Decl::ObjCProtocol:
  354   case Decl::ObjCInterface:
  355   case Decl::Empty:
  359   case Decl::UsingDirective:
  360   case Decl::Label:
  361   case Decl::UnresolvedUsingTypename:
  362   case Decl::TemplateTypeParm:
  363   case Decl::EnumConstant:
  364   case Decl::UnresolvedUsingValue:
  365   case Decl::IndirectField:
  366   case Decl::Field:
  367   case Decl::MSProperty:
  368   case Decl::ObjCIvar:
  369   case Decl::ObjCAtDefsField:
  370   case Decl::NonTypeTemplateParm:
  371   case Decl::TemplateTemplateParm:
  372   case Decl::Using:
  373   case Decl::UsingPack:
  374   case Decl::ObjCMethod:
  375   case Decl::ObjCCategory:
  376   case Decl::ObjCCategoryImpl:
  377   case Decl::ObjCImplementation:
  378   case Decl::ObjCProperty:
  379   case Decl::ObjCCompatibleAlias:
  380   case Decl::LinkageSpec:
  381   case Decl::Export:
  382   case Decl::ObjCPropertyImpl:
  383   case Decl::PragmaComment:
  384   case Decl::PragmaDetectMismatch:
  385   case Decl::FileScopeAsm:
  386   case Decl::AccessSpec:
  387   case Decl::Friend:
  388   case Decl::FriendTemplate:
  389   case Decl::StaticAssert:
  390   case Decl::Block:
  391   case Decl::Captured:
  392   case Decl::ClassScopeFunctionSpecialization:
  393   case Decl::Import:
  394   case Decl::OMPThreadPrivate:
  395   case Decl::OMPAllocate:
  396   case Decl::OMPRequires:
  397   case Decl::OMPCapturedExpr:
  398   case Decl::OMPDeclareReduction:
  399   case Decl::OMPDeclareMapper:
  400   case Decl::BuiltinTemplate:
  401   case Decl::Decomposition:
  402   case Decl::Binding:
  403   case Decl::Concept:
  408   case Decl::ImplicitParam:
  409   case Decl::ParmVar:
  410   case Decl::ObjCTypeParam:
tools/clang/lib/Serialization/ASTCommon.h
   99   for (Decl *LexicalD : DC->decls()) {
  116 inline bool isPartOfPerModuleInitializer(const Decl *D) {
tools/clang/lib/Serialization/ASTReader.cpp
 3163       if (Decl *D = GetExistingDecl(ID))
 3539         if (Decl *D = GetExistingDecl(ID))
 3616         auto *Decl = GetDecl(DeclID);
 3994   for (Decl *D : Names) {
 7598 Decl *ASTReader::GetExternalDecl(uint32_t ID) {
 7602 void ASTReader::CompleteRedeclChain(const Decl *D) {
 7635       for (auto *DCDecl : cast<Decl>(D->getLexicalDeclContext())->redecls()) {
 7635       for (auto *DCDecl : cast<Decl>(D->getLexicalDeclContext())->redecls()) {
 7637         SmallVector<Decl*, 8> Decls;
 7754 ModuleFile *ASTReader::getOwningModuleFile(const Decl *D) {
 7773   if (Decl *D = DeclsLoaded[Index])
 7781 static Decl *getPredefinedDecl(ASTContext &Context, PredefinedDeclIDs ID) {
 7837 Decl *ASTReader::GetExistingDecl(DeclID ID) {
 7840     Decl *D = getPredefinedDecl(*ContextObj, (PredefinedDeclIDs)ID);
 7862 Decl *ASTReader::GetDecl(DeclID ID) {
 7933     const DeclContext *DC, llvm::function_ref<bool(Decl::Kind)> IsKindWeWant,
 7934     SmallVectorImpl<Decl *> &Decls) {
 7955       if (Decl *D = GetLocalDecl(*M, ID)) {
 8010                                     SmallVectorImpl<Decl *> &Decls) {
 8119 void ASTReader::PassInterestingDeclToConsumer(Decl *D) {
 8843                                    SmallVectorImpl<Decl *> *Decls) {
 9001 bool ASTReader::DeclIsFromPCHWithObjectFile(const Decl *D) {
 9054 ExternalASTSource::ExtKind ASTReader::hasExternalDefinitions(const Decl *FD) {
 9840 std::string ASTReader::getOwningModuleNameForDiagnostic(const Decl *D) {
 9861         llvm::DenseMap<IdentifierInfo *, SmallVector<Decl *, 2>>;
 9959   for (Decl *D : PendingDefinitions) {
 9967         for (auto *R = getMostRecentExistingDecl(RD); R;
 9984       for (auto *R = getMostRecentExistingDecl(ID); R; R = R->getPreviousDecl())
 9991       for (auto *R = getMostRecentExistingDecl(PD); R; R = R->getPreviousDecl())
 9998     for (auto *R = getMostRecentExistingDecl(RTD); R; R = R->getPreviousDecl())
10130     const Decl *DCanon = D->getCanonicalDecl();
10148     for (auto *CanonMember : CanonDef->decls()) {
10174           getOwningModuleNameForDiagnostic(cast<Decl>(CanonDef));
10180         Diag(cast<Decl>(CanonDef)->getLocation(),
10366       using DeclHashes = llvm::SmallVector<std::pair<Decl *, unsigned>, 4>;
10450           case Decl::TemplateTypeParm: {
10482           case Decl::NonTypeTemplateParm: {
10514           case Decl::TemplateTemplateParm: {
10563         for (auto *D : Record->decls()) {
10599         case Decl::AccessSpec:
10611         case Decl::StaticAssert:
10613         case Decl::Field:
10615         case Decl::CXXMethod:
10616         case Decl::CXXConstructor:
10617         case Decl::CXXDestructor:
10619         case Decl::TypeAlias:
10621         case Decl::Typedef:
10623         case Decl::Var:
10625         case Decl::Friend:
10627         case Decl::FunctionTemplate:
10632       Decl *FirstDecl = nullptr;
10633       Decl *SecondDecl = nullptr;
11500                 case Decl::TemplateTypeParm:
11502                 case Decl::NonTypeTemplateParm:
11504                 case Decl::TemplateTemplateParm:
11967       for (auto *D : Enum->decls()) {
tools/clang/lib/Serialization/ASTReaderDecl.cpp
  139     Decl *ReadDecl() {
  189       Decl *MergeWith;
  194       RedeclarableResult(Decl *MergeWith, GlobalDeclID FirstID, bool IsKeyDecl)
  205       Decl *getKnownMergeTarget() const { return MergeWith; }
  288     static Decl *getMostRecentDeclImpl(Redeclarable<DeclT> *D);
  289     static Decl *getMostRecentDeclImpl(...);
  290     static Decl *getMostRecentDecl(Decl *D);
  290     static Decl *getMostRecentDecl(Decl *D);
  294                                        Redeclarable<DeclT> *D, Decl *Previous,
  295                                        Decl *Canon);
  297     static void attachPreviousDecl(ASTReader &Reader, Decl *D, Decl *Previous,
  297     static void attachPreviousDecl(ASTReader &Reader, Decl *D, Decl *Previous,
  298                                    Decl *Canon);
  301     static void attachLatestDeclImpl(Redeclarable<DeclT> *D, Decl *Latest);
  303     static void attachLatestDecl(Decl *D, Decl *latest);
  303     static void attachLatestDecl(Decl *D, Decl *latest);
  313     void Visit(Decl *D);
  315     void UpdateDecl(Decl *D, SmallVectorImpl<serialization::DeclID> &);
  322     void VisitDecl(Decl *D);
  463   DeclT *Start;
  464   DeclT *Canonical = nullptr;
  465   DeclT *Current = nullptr;
  469   MergedRedeclIterator(DeclT *Start) : Start(Start), Current(Start) {}
  471   DeclT *operator*() { return Current; }
  498 static llvm::iterator_range<MergedRedeclIterator<DeclT>>
  499 merged_redecls(DeclT *D) {
  521 void ASTDeclReader::Visit(Decl *D) {
  556 void ASTDeclReader::VisitDecl(Decl *D) {
  607         ModulePrivate ? Decl::ModuleOwnershipKind::ModulePrivate
  608                       : Decl::ModuleOwnershipKind::VisibleWhenImported);
  625     D->setModuleOwnershipKind(Decl::ModuleOwnershipKind::ModulePrivate);
 2098   if (Decl *InstD = ReadDecl()) {
 2211   if (Decl *InstD = ReadDecl()) {
 2360   Decl *MergeWith = nullptr;
 2432   if (auto *Existing = Redecl.getKnownMergeTarget())
 2742 inline void ASTReader::LoadedDecl(unsigned Index, Decl *D) {
 2753 static bool isConsumerInterestedIn(ASTContext &Ctx, Decl *D, bool HasBody) {
 2947   if (!declaresSameEntity(cast<Decl>(X->getDeclContext()->getRedeclContext()),
 2948                           cast<Decl>(Y->getDeclContext()->getRedeclContext())))
 3235   for (auto *D : merged_redecls(cast<Decl>(LexicalDC))) {
 3235   for (auto *D : merged_redecls(cast<Decl>(LexicalDC))) {
 3253   auto *CanonDC = cast<Decl>(DC)->getCanonicalDecl();
 3253   auto *CanonDC = cast<Decl>(DC)->getCanonicalDecl();
 3263   if (PrimaryDC && !cast<Decl>(PrimaryDC)->isFromASTFile()) {
 3278   auto *CanonDC = cast<Decl>(DC)->getCanonicalDecl();
 3278   auto *CanonDC = cast<Decl>(DC)->getCanonicalDecl();
 3381 Decl *ASTDeclReader::getMostRecentDeclImpl(Redeclarable<DeclT> *D) {
 3385 Decl *ASTDeclReader::getMostRecentDeclImpl(...) {
 3389 Decl *ASTDeclReader::getMostRecentDecl(Decl *D) {
 3389 Decl *ASTDeclReader::getMostRecentDecl(Decl *D) {
 3402 Decl *ASTReader::getMostRecentExistingDecl(Decl *D) {
 3402 Decl *ASTReader::getMostRecentExistingDecl(Decl *D) {
 3409                                            Decl *Previous, Decl *Canon) {
 3409                                            Decl *Previous, Decl *Canon) {
 3419                                            Decl *Previous, Decl *Canon) {
 3419                                            Decl *Previous, Decl *Canon) {
 3447                                            Decl *Previous, Decl *Canon) {
 3447                                            Decl *Previous, Decl *Canon) {
 3508                                            Decl *ToD) {
 3537 void ASTDeclReader::attachPreviousDecl(ASTReader &Reader, Decl *D,
 3538                                        Decl *Previous, Decl *Canon) {
 3538                                        Decl *Previous, Decl *Canon) {
 3557       (Decl::IDNS_Ordinary | Decl::IDNS_Tag | Decl::IDNS_Type);
 3557       (Decl::IDNS_Ordinary | Decl::IDNS_Tag | Decl::IDNS_Type);
 3557       (Decl::IDNS_Ordinary | Decl::IDNS_Tag | Decl::IDNS_Type);
 3567 void ASTDeclReader::attachLatestDeclImpl(Redeclarable<DeclT> *D, Decl *Latest) {
 3575 void ASTDeclReader::attachLatestDecl(Decl *D, Decl *Latest) {
 3575 void ASTDeclReader::attachLatestDecl(Decl *D, Decl *Latest) {
 3597 void ASTReader::markIncompleteDeclChain(Decl *D) {
 3609 Decl *ASTReader::ReadDeclRecord(DeclID ID) {
 3638   Decl *D = nullptr;
 3965   Decl *D = Record.D;
 4047 void ASTReader::loadPendingDeclChain(Decl *FirstLocal, uint64_t LocalOffset) {
 4049   Decl *CanonDecl = FirstLocal->getCanonicalDecl();
 4051     Decl *PrevMostRecent = ASTDeclReader::getMostRecentDecl(CanonDecl);
 4090   Decl *MostRecent = FirstLocal;
 4092     auto *D = GetLocalDecl(*M, Record[N - I - 1]);
 4239 void ASTDeclReader::UpdateDecl(Decl *D,
 4247       Decl *MD = Record.readDecl();
tools/clang/lib/Serialization/ASTReaderStmt.cpp
   90     Decl *ReadDecl() {
  350     SmallVector<Decl *, 16> Decls;
tools/clang/lib/Serialization/ASTWriter.cpp
 3076     for (Decl *D : Context->getModuleInitializers(Mod))
 3236   for (const auto *D : DC->decls()) {
 3579   if (Decl *Redecl = D->getPreviousDecl()) {
 3598   } else if (Decl *First = D->getCanonicalDecl()) {
 4112       for (Decl *ChildD : cast<CXXRecordDecl>(DC)->decls())
 4203       Chain->getKeyDeclaration(cast<Decl>(DC))->isFromASTFile()) {
 4300     DC = cast<DeclContext>(Chain->getKeyDeclaration(cast<Decl>(DC)));
 4303   RecordData::value_type Record[] = {UPDATE_VISIBLE, getDeclID(cast<Decl>(DC))};
 4370   const llvm::DenseMap<const Decl *, std::set<std::string>> &OpenCLDeclExtMap =
 4907   for (const auto *D : TU->noload_decls()) {
 4960   for (const auto *I : DeclsToEmitEvenIfUnreferenced) {
 5260     const Decl *D = DeclUpdate.first;
 5673 void ASTWriter::AddDeclRef(const Decl *D, RecordDataImpl &Record) {
 5677 DeclID ASTWriter::GetDeclRef(const Decl *D) {
 5706 DeclID ASTWriter::getDeclID(const Decl *D) {
 5719 void ASTWriter::associateDeclWithFile(const Decl *D, DeclID ID) {
 6344 static bool isImportedDeclContext(ASTReader *Chain, const Decl *D) {
 6353 void ASTWriter::AddedVisibleDecl(const DeclContext *DC, const Decl *D) {
 6366   if (isa<NamespaceDecl>(DC) && D->getFriendObjectKind() == Decl::FOK_None &&
 6372   if (D->isFromASTFile() || !isImportedDeclContext(Chain, cast<Decl>(DC)))
 6378   if (UpdatedDeclContexts.insert(DC) && !cast<Decl>(DC)->isFromASTFile()) {
 6382     for (auto *Child : DC->decls())
 6388 void ASTWriter::AddedCXXImplicitMember(const CXXRecordDecl *RD, const Decl *D) {
 6518 void ASTWriter::DeclarationMarkedUsed(const Decl *D) {
 6532 void ASTWriter::DeclarationMarkedOpenMPThreadPrivate(const Decl *D) {
 6541 void ASTWriter::DeclarationMarkedOpenMPAllocate(const Decl *D, const Attr *A) {
 6550 void ASTWriter::DeclarationMarkedOpenMPDeclareTarget(const Decl *D,
tools/clang/lib/Serialization/ASTWriterDecl.cpp
   48     uint64_t Emit(Decl *D) {
   55     void Visit(Decl *D);
   57     void VisitDecl(Decl *D);
  173     void AddFirstDeclFromEachModule(const Decl *D, bool IncludeLocal) {
  174       llvm::MapVector<ModuleFile*, const Decl*> Firsts;
  176       for (const Decl *R = D->getMostRecentDecl(); R; R = R->getPreviousDecl()) {
  198     ArrayRef<Decl> getPartialSpecializations(FunctionTemplateDecl::Common *) {
  225       llvm::SmallVector<const Decl*, 16> Specs;
  243     void RegisterTemplateSpecialization(const Decl *Template,
  244                                         const Decl *Specialization) {
  265 void ASTDeclWriter::Visit(Decl *D) {
  292 void ASTDeclWriter::VisitDecl(Decl *D) {
  293   Record.AddDeclRef(cast_or_null<Decl>(D->getDeclContext()));
  295     Record.AddDeclRef(cast_or_null<Decl>(D->getLexicalDeclContext()));
 1038       D->getKind() == Decl::Var &&
 1212     Decl *Parent = cast<Decl>(
 1212     Decl *Parent = cast<Decl>(
 1276   Record.AddDeclRef(dyn_cast<Decl>(D->getCommonAncestor()));
 1485   if (Decl *InstFromD = InstFrom.dyn_cast<ClassTemplateDecl *>()) {
 1544   if (Decl *InstFromD = InstFrom.dyn_cast<VarTemplateDecl *>()) {
 1703 const Decl *ASTWriter::getFirstLocalDecl(const Decl *D) {
 1703 const Decl *ASTWriter::getFirstLocalDecl(const Decl *D) {
 1706   const Decl *Canon = D->getCanonicalDecl();
 1710   const Decl *&CacheEntry = FirstLocalDeclCache[Canon];
 1714   for (const Decl *Redecl = D; Redecl; Redecl = Redecl->getPreviousDecl())
 1733     const Decl *FirstLocal = Writer.getFirstLocalDecl(DAsT);
 1749       for (const Decl *Prev = FirstLocal->getMostRecentDecl();
 2327 static bool isRequiredDecl(const Decl *D, ASTContext &Context,
 2346 void ASTWriter::WriteDecl(ASTContext &Context, Decl *D) {
tools/clang/lib/Serialization/ASTWriterStmt.cpp
  955   Record.AddDeclRef(cast_or_null<Decl>(E->getParentContext()));
 1535   Record.AddDeclRef(cast_or_null<Decl>(E->getUsedContext()));
 1543   Record.AddDeclRef(cast_or_null<Decl>(E->getUsedContext()));
tools/clang/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp
   51   const Decl *D = LC->getDecl();
tools/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
 2279   for (const auto *I : DS->decls()) {
tools/clang/lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp
  282   void checkASTCodeBody(const Decl *D, AnalysisManager& Mgr,
tools/clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp
  399   const Decl *D = Call.getDecl();
tools/clang/lib/StaticAnalyzer/Checkers/CastToStructChecker.cpp
  111   void checkASTCodeBody(const Decl *D, AnalysisManager &Mgr,
tools/clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp
 1000   void checkASTCodeBody(const Decl *D, AnalysisManager& mgr,
tools/clang/lib/StaticAnalyzer/Checkers/CheckSizeofPointer.cpp
   82   void checkASTCodeBody(const Decl *D, AnalysisManager& mgr,
tools/clang/lib/StaticAnalyzer/Checkers/CloneChecker.cpp
   41   void checkASTCodeBody(const Decl *D, AnalysisManager &Mgr,
   59 void CloneChecker::checkASTCodeBody(const Decl *D, AnalysisManager &Mgr,
tools/clang/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp
  128   void checkASTCodeBody(const Decl *D, AnalysisManager &Mgr,
  377       for (const auto *DI : DS->decls()) {
  510 void DeadStoresChecker::checkASTCodeBody(const Decl *D, AnalysisManager &mgr,
tools/clang/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp
   35   void checkASTCodeBody(const Decl *D, AnalysisManager& mgr,
   61   void checkASTCodeBody(const Decl *D, AnalysisManager& mgr,
   87   void checkASTCodeBody(const Decl *D, AnalysisManager& mgr,
  112   void checkASTCodeBody(const Decl *D, AnalysisManager& mgr,
  136   void checkASTCodeBody(const Decl *D, AnalysisManager& Mgr,
  159   void checkASTCodeBody(const Decl *D, AnalysisManager& mgr,
  183   void checkASTCodeBody(const Decl *D, AnalysisManager& mgr,
tools/clang/lib/StaticAnalyzer/Checkers/DirectIvarAssignment.cpp
  155 static bool isAnnotatedToAllowDirectAssignment(const Decl *D) {
tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp
  179     const Decl *D = Dtor->getDecl();
tools/clang/lib/StaticAnalyzer/Checkers/GCDAntipatternChecker.cpp
   50   void checkASTCodeBody(const Decl *D,
   75 static bool isTest(const Decl *D) {
  205 void GCDAntipatternChecker::checkASTCodeBody(const Decl *D,
tools/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
  471   if (!FDecl || FDecl->getKind() != Decl::Function)
  539   if (!FDecl || FDecl->getKind() != Decl::Function)
tools/clang/lib/StaticAnalyzer/Checkers/IdenticalExprChecker.cpp
  504   void checkASTCodeBody(const Decl *D, AnalysisManager &Mgr,
tools/clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp
  600   if (const Decl *D = IvarRef->getDecl())
tools/clang/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp
   39 static bool InNamespace(const Decl *D, StringRef NS) {
  116   const Decl *DeclWithIssue;
  121   StringRefCheckerVisitor(const Decl *declWithIssue, BugReporter &br,
  136 static void CheckStringRefAssignedTemporary(const Decl *D, BugReporter &BR,
  145   for (auto *I : S->decls())
  306   void checkASTCodeBody(const Decl *D, AnalysisManager& mgr,
tools/clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp
   81   bool isAnnotatedAsReturningLocalized(const Decl *D) const;
   82   bool isAnnotatedAsTakingLocalized(const Decl *D) const;
  647     const Decl *D) const {
  660     const Decl *D) const {
  727   const Decl *D = C.getCurrentAnalysisDeclContext()->getDecl();
  847     if (const Decl *D = msg.getDecl()) {
  945   const Decl *D = Call.getDecl();
 1229   void checkASTCodeBody(const Decl *D, AnalysisManager &Mgr,
tools/clang/lib/StaticAnalyzer/Checkers/MIGChecker.cpp
  156   const Decl *D = SFC->getDecl();
tools/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp
  255   if (!FD || FD->getKind() != Decl::Function)
  406   if (!FD || FD->getKind() != Decl::Function)
tools/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
  886   if (FD->getKind() == Decl::Function) {
 1066   if (FD->getKind() == Decl::Function) {
tools/clang/lib/StaticAnalyzer/Checkers/MallocOverflowSecurityChecker.cpp
   45   void checkASTCodeBody(const Decl *D, AnalysisManager &mgr,
   54     const Decl *D, BugReporter &BR, AnalysisManager &mgr) const;
  143     static const Decl *getDecl(const DeclRefExpr *DR) { return DR->getDecl(); }
  144     static const Decl *getDecl(const MemberExpr *ME) {
  271   const Decl *D, BugReporter &BR, AnalysisManager &mgr) const {
  295 void MallocOverflowSecurityChecker::checkASTCodeBody(const Decl *D,
tools/clang/lib/StaticAnalyzer/Checkers/MallocSizeofChecker.cpp
  102     for (const auto *I : S->decls())
  176   void checkASTCodeBody(const Decl *D, AnalysisManager& mgr,
tools/clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp
  534     const auto *CtxDec = LC->getDecl();
tools/clang/lib/StaticAnalyzer/Checkers/NonNullParamChecker.cpp
   50   const Decl *FD = Call.getDecl();
tools/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp
  410   const Decl *D = LocCtxt->getDecl();
  544   const Decl *D = DeclCtxt->getDecl();
tools/clang/lib/StaticAnalyzer/Checkers/NumberObjectConversionChecker.cpp
   47   void checkASTCodeBody(const Decl *D, AnalysisManager &AM,
  119       (Result.Nodes.getNodeAs<Decl>("osnumber") != nullptr);
  195 void NumberObjectConversionChecker::checkASTCodeBody(const Decl *D,
tools/clang/lib/StaticAnalyzer/Checkers/OSObjectCStyleCast.cpp
   32   void checkASTCodeBody(const Decl *D,
   63 void OSObjectCStyleCastChecker::checkASTCodeBody(const Decl *D, AnalysisManager &AM,
tools/clang/lib/StaticAnalyzer/Checkers/ObjCAutoreleaseWriteChecker.cpp
   50   void checkASTCodeBody(const Decl *D,
  108 static void emitDiagnostics(BoundNodes &Match, const Decl *D, BugReporter &BR,
  149 void ObjCAutoreleaseWriteChecker::checkASTCodeBody(const Decl *D,
tools/clang/lib/StaticAnalyzer/Checkers/ObjCContainersASTChecker.cpp
  163   void checkASTCodeBody(const Decl *D, AnalysisManager& Mgr,
tools/clang/lib/StaticAnalyzer/Checkers/ObjCUnusedIVarsChecker.cpp
   98   for (const auto *I : C->decls())
tools/clang/lib/StaticAnalyzer/Checkers/PointerIterationChecker.cpp
   30   void checkASTCodeBody(const Decl *D,
   35 static void emitDiagnostics(const BoundNodes &Match, const Decl *D,
   82 void PointerIterationChecker::checkASTCodeBody(const Decl *D,
tools/clang/lib/StaticAnalyzer/Checkers/PointerSortingChecker.cpp
   30   void checkASTCodeBody(const Decl *D,
   35 static void emitDiagnostics(const BoundNodes &Match, const Decl *D,
   95 void PointerSortingChecker::checkASTCodeBody(const Decl *D,
tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cpp
 1049   const Decl *CD = &Pred->getCodeDecl();
 1337   const Decl *D = LCtx->getDecl();
tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp
  764     const Decl *D = &EndN->getCodeDecl();
  835     const Decl *PDecl = Region->getDecl();
tools/clang/lib/StaticAnalyzer/Checkers/RunLoopAutoreleaseLeakChecker.cpp
   52   void checkASTCodeBody(const Decl *D,
   81                             const Decl *D,
  155 checkTempObjectsInSamePool(const Decl *D, AnalysisManager &AM, BugReporter &BR,
  174 checkTempObjectsInNoPool(const Decl *D, AnalysisManager &AM, BugReporter &BR,
  195 void RunLoopAutoreleaseLeakChecker::checkASTCodeBody(const Decl *D,
tools/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp
  109   if (!FD || FD->getKind() != Decl::Function)
tools/clang/lib/StaticAnalyzer/Checkers/UndefinedArraySubscriptChecker.cpp
   43   const Decl *D = C.getLocationContext()->getDecl();
tools/clang/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp
  106   if (!FD || FD->getKind() != Decl::Function)
  462   if (!FD || FD->getKind() != Decl::Function)
tools/clang/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp
   56   const Decl *D = nullptr;
tools/clang/lib/StaticAnalyzer/Checkers/VforkChecker.cpp
   52   bool isVforkCall(const Decl *D, CheckerContext &C) const;
   82 bool VforkChecker::isVforkCall(const Decl *D, CheckerContext &C) const {
tools/clang/lib/StaticAnalyzer/Core/BugReporter.cpp
  482 static bool hasImplicitBody(const Decl *D) {
  598     const Decl *D = C.getCurrLocationContext()->getDecl();
 1133       const Decl *D = CalleeLC->getDecl();
 1155       const Decl *Caller = CE->getLocationContext()->getDecl();
 1942   const Decl *D = C.getLocationContextFor(&Path)->getDecl();
 2046     const Decl *D = CalleeLC->getDecl();
 2128 const Decl *PathSensitiveBugReport::getDeclWithIssue() const {
 3044     const Decl *Signature, const SourceManager &SM,
 3089       const Decl *D = N->getLocationContext()->getDecl();
 3093       const Decl* D = CE->getCalleeContext()->getDecl();
 3233 void BugReporter::EmitBasicReport(const Decl *DeclWithIssue,
 3243 void BugReporter::EmitBasicReport(const Decl *DeclWithIssue,
tools/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
  436 static bool potentiallyWritesIntoIvar(const Decl *Parent,
 2681   const Decl *D = N->getLocationContext()->getDecl();
tools/clang/lib/StaticAnalyzer/Core/CallEvent.cpp
  170   const Decl *D = getDecl();
  235   const Decl *D = SFC->getDecl();
  291   if (const Decl *callee = getDecl())
  348   const Decl *D = getDecl();
  446   if (const Decl *D = getDecl()) {
  462 QualType CallEvent::getDeclaredResultType(const Decl *D) {
  491 bool CallEvent::isVariadic(const Decl *D) {
  563     const Decl* Decl = AD->getDecl();
  725   const Decl *D = getDecl();
tools/clang/lib/StaticAnalyzer/Core/CheckerContext.cpp
   36 StringRef CheckerContext::getDeclDescription(const Decl *D) {
tools/clang/lib/StaticAnalyzer/Core/CheckerManager.cpp
   76 void CheckerManager::runCheckersOnASTDecl(const Decl *D, AnalysisManager& mgr,
   98 void CheckerManager::runCheckersOnASTBody(const Decl *D, AnalysisManager& mgr,
tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
  234   const Decl *D = InitLoc->getDecl();
 1567       const Decl *Callee = OCE->getCalleeDecl();
 2432     const Decl *D = LocCtxt->getDecl();
tools/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp
  336         const Decl *CalleeD = FutureSFC->getDecl();
tools/clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
  186   const Decl *RuntimeCallee = calleeCtx->getDecl();
  187   const Decl *StaticDecl = Call->getDecl();
  387 void ExprEngine::examineStackFrames(const Decl *D, const LocationContext *LCtx,
  394       const Decl *DI = SFC->getDecl();
  430 bool ExprEngine::inlineCall(const CallEvent &Call, const Decl *D,
  916 bool ExprEngine::shouldInlineCall(const CallEvent &Call, const Decl *D,
 1026     const Decl *D = RD.getDecl();
 1055                                const CallEvent &Call, const Decl *D,
tools/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
  196   if (const Decl *DeclWithIssue = D.getDeclWithIssue()) {
  545     const Decl *DeclWithIssue = D.getDeclWithIssue();
tools/clang/lib/StaticAnalyzer/Core/IssueHash.cpp
   87 static std::string GetEnclosingDeclContextSignature(const Decl *D) {
   95     case Decl::Namespace:
   96     case Decl::Record:
   97     case Decl::CXXRecord:
   98     case Decl::Enum:
  101     case Decl::CXXConstructor:
  102     case Decl::CXXDestructor:
  103     case Decl::CXXConversion:
  104     case Decl::CXXMethod:
  105     case Decl::Function:
  108     case Decl::ObjCMethod:
  185                                   const Decl *D,
  199                                     const Decl *D,
tools/clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp
   94 changeIntBoundNode(internal::Matcher<Decl> VarNodeMatcher) {
  105 callByRef(internal::Matcher<Decl> VarNodeMatcher) {
  112 assignedToRef(internal::Matcher<Decl> VarNodeMatcher) {
  121 getAddrTo(internal::Matcher<Decl> VarNodeMatcher) {
  177       for (const Decl *D : DS->decls()) {
tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp
  308 void DeclRegion::ProfileRegion(llvm::FoldingSetNodeID& ID, const Decl *D,
  898         const Decl *STCD = STC->getDecl();
tools/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
  691     const Decl *DeclWithIssue = D->getDeclWithIssue();
  698     if (const Decl *DeclWithIssue = D->getDeclWithIssue()) {
  703           case Decl::CXXRecord:
  706           case Decl::CXXMethod:
  709           case Decl::ObjCMethod:
  712           case Decl::Function:
tools/clang/lib/StaticAnalyzer/Core/Store.cpp
  432 SVal StoreManager::getLValueFieldOrIvar(const Decl *D, SVal Base) {
tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
  301   void DisplayFunction(const Decl *D, AnalysisMode Mode,
  354     getInliningModeForFunction(const Decl *D, const SetOfConstDecls &Visited);
  366   void HandleCode(Decl *D, AnalysisMode Mode,
  370   void RunPathSensitiveChecks(Decl *D,
  378   bool VisitDecl(Decl *D) {
  464   std::string getFunctionName(const Decl *D);
  467   AnalysisMode getModeForDecl(Decl *D, AnalysisMode Mode);
  500 static bool shouldSkipFunction(const Decl *D,
  528 AnalysisConsumer::getInliningModeForFunction(const Decl *D,
  566     Decl *D = N->getDecl();
  584     for (const Decl *Callee : VisitedCallees)
  680 std::string AnalysisConsumer::getFunctionName(const Decl *D) {
  741 AnalysisConsumer::getModeForDecl(Decl *D, AnalysisMode Mode) {
  765 void AnalysisConsumer::HandleCode(Decl *D, AnalysisMode Mode,
  808 void AnalysisConsumer::RunPathSensitiveChecks(Decl *D,
tools/clang/lib/Tooling/ASTDiff/ASTDiff.cpp
  115   Impl(SyntaxTree *Parent, Decl *N, ASTContext &AST);
  157   std::string getDeclValue(const Decl *D) const;
  165 static bool isSpecializedNodeExcluded(const Decl *D) { return D->isImplicit(); }
  172 static bool isNodeExcluded(const SourceManager &SrcMgr, T *N) {
  196   template <class T> std::tuple<NodeId, NodeId> PreTraverse(T *ASTNode) {
  231   bool TraverseDecl(Decl *D) {
  266 SyntaxTree::Impl::Impl(SyntaxTree *Parent, Decl *N, ASTContext &AST)
  390     if (const auto *D = P.get<Decl>())
  390     if (const auto *D = P.get<Decl>())
  416   if (auto *D = DTN.get<Decl>())
  423 std::string SyntaxTree::Impl::getDeclValue(const Decl *D) const {
tools/clang/lib/Tooling/Refactoring/ASTSelection.cpp
   20 CharSourceRange getLexicalDeclRange(Decl *D, const SourceManager &SM,
   78   bool TraverseDecl(Decl *D) {
  219   if (const Decl *D = Node.Node.get<Decl>()) {
  219   if (const Decl *D = Node.Node.get<Decl>()) {
  414 static bool isFunctionLikeDeclaration(const Decl *D) {
  426     if (const auto *D = Node.get<Decl>()) {
  426     if (const auto *D = Node.get<Decl>()) {
  441 const Decl *CodeRangeASTSelection::getFunctionLikeNearestParent() const {
  444     if (const auto *D = Node.get<Decl>()) {
  444     if (const auto *D = Node.get<Decl>()) {
tools/clang/lib/Tooling/Refactoring/Extract/Extract.cpp
   47 SourceLocation computeFunctionExtractionLocation(const Decl *D) {
  100   const Decl *ParentDecl = Code.getFunctionLikeNearestParent();
tools/clang/lib/Tooling/Refactoring/Rename/USRFinder.cpp
   84   for (auto *CurrDecl : Context.getTranslationUnitDecl()->decls()) {
  134 std::string getUSRForDecl(const Decl *Decl) {
tools/clang/lib/Tooling/Refactoring/Rename/USRFindingAction.cpp
   65   AdditionalUSRFinder(const Decl *FoundDecl, ASTContext &Context)
  173   const Decl *FoundDecl;
tools/clang/lib/Tooling/Refactoring/Rename/USRLocFinder.cpp
  170     const Decl *Context;
  464   const Decl *getClosestAncestorDecl(const ASTNodeType &Node) {
  469     if (ast_type_traits::ASTNodeKind::getFromNodeKind<Decl>().isBaseOf(
  471       return Parents[0].template get<Decl>();
  486   bool isInUSRSet(const Decl *Decl) const {
  504                                        StringRef PrevName, Decl *Decl) {
  512                           llvm::StringRef NewName, Decl *TranslationUnitDecl) {
tools/clang/lib/Tooling/Syntax/BuildTree.cpp
   83   llvm::ArrayRef<syntax::Token> getRange(const Decl *D) const {
  204   bool TraverseDecl(Decl *D) {
  212   bool VisitDecl(Decl *D) {
tools/clang/tools/c-index-test/core_main.cpp
   74 static void printSymbolNameAndUSR(const Decl *D, ASTContext &Ctx,
   97   bool handleDeclOccurence(const Decl *D, SymbolRoleSet Roles,
  297 static void printSymbolNameAndUSR(const Decl *D, ASTContext &Ctx,
tools/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp
   49   void handleDecl(const Decl *D);
   58 void MapExtDefNamesConsumer::handleDecl(const Decl *D) {
   73     for (const Decl *D : DC->decls())
tools/clang/tools/extra/clang-change-namespace/ChangeNamespace.cpp
  277 bool isDeclVisibleAtLocation(const SourceManager &SM, const Decl *D,
  596     const auto *Context = Result.Nodes.getNodeAs<Decl>("dc");
  596     const auto *Context = Result.Nodes.getNodeAs<Decl>("dc");
  611     const auto *Context = Result.Nodes.getNodeAs<Decl>("dc");
  611     const auto *Context = Result.Nodes.getNodeAs<Decl>("dc");
  626     const auto *Context = Result.Nodes.getNodeAs<Decl>("dc");
  626     const auto *Context = Result.Nodes.getNodeAs<Decl>("dc");
  649     const auto *Context = Result.Nodes.getNodeAs<Decl>("dc");
  649     const auto *Context = Result.Nodes.getNodeAs<Decl>("dc");
  681   if (Decl::castToDeclContext(NsDecl)->decls_empty())
  930   const auto *DeclCtx = Result.Nodes.getNodeAs<Decl>("dc");
  930   const auto *DeclCtx = Result.Nodes.getNodeAs<Decl>("dc");
tools/clang/tools/extra/clang-doc/Serialize.cpp
   53 llvm::SmallString<128> getInfoRelativePath(const Decl *D) {
tools/clang/tools/extra/clang-move/HelperDeclRefGraph.cpp
   38 void HelperDeclRefGraph::addEdge(const Decl *Caller, const Decl *Callee) {
   38 void HelperDeclRefGraph::addEdge(const Decl *Caller, const Decl *Callee) {
   56 CallGraphNode *HelperDeclRefGraph::getOrInsertNode(Decl *F) {
   66 CallGraphNode *HelperDeclRefGraph::getNode(const Decl *D) const {
   72 HelperDeclRefGraph::getReachableNodes(const Decl *Root) const {
   90 const Decl *HelperDeclRGBuilder::getOutmostClassOrFunDecl(const Decl *D) {
   90 const Decl *HelperDeclRGBuilder::getOutmostClassOrFunDecl(const Decl *D) {
   92   const auto *Result = D;
  116     const auto *DC = Result.Nodes.getNodeAs<Decl>("dc");
  116     const auto *DC = Result.Nodes.getNodeAs<Decl>("dc");
  126     const auto *DC = Result.Nodes.getNodeAs<Decl>("dc");
  126     const auto *DC = Result.Nodes.getNodeAs<Decl>("dc");
tools/clang/tools/extra/clang-move/HelperDeclRefGraph.h
   55   void addEdge(const Decl *Caller, const Decl *Callee);
   55   void addEdge(const Decl *Caller, const Decl *Callee);
   56   CallGraphNode *getNode(const Decl *D) const;
   60   llvm::DenseSet<const CallGraphNode *> getReachableNodes(const Decl *D) const;
   69   CallGraphNode *getOrInsertNode(Decl *D);
   71   typedef llvm::DenseMap<const Decl *, std::unique_ptr<CallGraphNode>>
   89   static const Decl *getOutmostClassOrFunDecl(const Decl *D);
   89   static const Decl *getOutmostClassOrFunDecl(const Decl *D);
tools/clang/tools/extra/clang-move/Move.cpp
   46   return InnerMatcher.matches(*Decl::castFromDeclContext(Context), Finder,
  278 SourceLocation getLocForEndOfDecl(const Decl *D,
  311 CharSourceRange getFullRange(const Decl *D,
  328 std::string getDeclarationSourceText(const Decl *D) {
  335 bool isInHeaderFile(const Decl *D, llvm::StringRef OriginalRunningDirectory,
  352 std::vector<std::string> getNamespaces(const Decl *D) {
  458 llvm::DenseSet<const Decl *>
  468   llvm::DenseSet<const Decl *> Results;
  884       if (Kind == Decl::Kind::Var)
  886       else if (Kind == Decl::Kind::Function ||
  887                Kind == Decl::Kind::FunctionTemplate)
  889       else if (Kind == Decl::Kind::ClassTemplate ||
  890                Kind == Decl::Kind::CXXRecord)
  892       else if (Kind == Decl::Kind::Enum)
  894       else if (Kind == Decl::Kind::Typedef || Kind == Decl::Kind::TypeAlias ||
  894       else if (Kind == Decl::Kind::Typedef || Kind == Decl::Kind::TypeAlias ||
  895                Kind == Decl::Kind::TypeAliasTemplate)
  908     case Decl::Kind::Function:
  909     case Decl::Kind::FunctionTemplate:
  910     case Decl::Kind::ClassTemplate:
  911     case Decl::Kind::CXXRecord:
  912     case Decl::Kind::Enum:
  913     case Decl::Kind::Typedef:
  914     case Decl::Kind::TypeAlias:
  915     case Decl::Kind::TypeAliasTemplate:
  916     case Decl::Kind::Var:
tools/clang/tools/extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp
  193     for (const auto *D : Ctx->decls()) {
tools/clang/tools/extra/clang-tidy/bugprone/BoolPointerImplicitConversionCheck.cpp
   46   const Decl *D = Var->getDecl();
tools/clang/tools/extra/clang-tidy/bugprone/ForwardDeclarationNamespaceCheck.cpp
   90   if (ParentDecl1->getDeclKind() == Decl::TranslationUnit ||
   91       ParentDecl2->getDeclKind() == Decl::TranslationUnit) {
  105   if (ParentDecl->getDeclKind() == Decl::TranslationUnit) {
tools/clang/tools/extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp
   38     for (const Decl *D : DS->getDeclGroup()) {
tools/clang/tools/extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp
  106     if (const Decl *D = StrlenExpr->getCalleeDecl())
tools/clang/tools/extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp
   55   void getDeclRefs(const CFGBlock *Block, const Decl *MovedVariable,
  229     const CFGBlock *Block, const Decl *MovedVariable,
tools/clang/tools/extra/clang-tidy/fuchsia/TrailingReturnCheck.cpp
   44   if (const auto *D = Result.Nodes.getNodeAs<Decl>("decl"))
   44   if (const auto *D = Result.Nodes.getNodeAs<Decl>("decl"))
tools/clang/tools/extra/clang-tidy/google/GlobalNamesInHeadersCheck.cpp
   48   const auto *D = Result.Nodes.getNodeAs<Decl>("using_decl");
   48   const auto *D = Result.Nodes.getNodeAs<Decl>("using_decl");
tools/clang/tools/extra/clang-tidy/google/UpgradeGoogletestCaseCheck.cpp
  234 static bool isInTemplate(const NodeType &Node,
  236   internal::Matcher<NodeType> IsInsideTemplate =
  287       IsInTemplate = isInTemplate<Decl>(*Using, Result);
  296       IsInTemplate = isInTemplate<Decl>(*Method, Result);
tools/clang/tools/extra/clang-tidy/hicpp/NoAssemblerCheck.cpp
   21 const ast_matchers::internal::VariadicDynCastAllOfMatcher<Decl,
tools/clang/tools/extra/clang-tidy/misc/UnconventionalAssignOperatorCheck.cpp
   83       if (Result.Nodes.getNodeAs<Decl>(Message[0]))
tools/clang/tools/extra/clang-tidy/misc/UnusedUsingDeclsCheck.cpp
   46 static bool ShouldCheckDecl(const Decl *TargetDecl) {
   97       const auto *TargetDecl = UsingShadow->getTargetDecl()->getCanonicalDecl();
  156 void UnusedUsingDeclsCheck::removeFromFoundDecls(const Decl *D) {
tools/clang/tools/extra/clang-tidy/misc/UnusedUsingDeclsCheck.h
   33   void removeFromFoundDecls(const Decl *D);
   41     llvm::SmallPtrSet<const Decl *, 4> UsingTargetDecls;
tools/clang/tools/extra/clang-tidy/modernize/LoopConvertUtils.cpp
   53   for (const auto *decl : Decls->decls()) {
  349 static bool isAliasDecl(ASTContext *Context, const Decl *TheDecl,
tools/clang/tools/extra/clang-tidy/modernize/UseAutoCheck.cpp
  336   for (const auto *Dec : D->decls()) {
  397   for (const auto *Dec : D->decls()) {
tools/clang/tools/extra/clang-tidy/modernize/UseNullptrCheck.cpp
  290     if (const auto *D = ContainingAncestor.get<Decl>())
  290     if (const auto *D = ContainingAncestor.get<Decl>())
  435       if (const auto *D = Parent.get<Decl>())
  435       if (const auto *D = Parent.get<Decl>())
tools/clang/tools/extra/clang-tidy/performance/UnnecessaryValueParamCheck.cpp
   42 bool hasLoopStmtAncestor(const DeclRefExpr &DeclRef, const Decl &Decl,
tools/clang/tools/extra/clang-tidy/readability/FunctionSizeCheck.cpp
   84   bool TraverseDecl(Decl *Node) {
tools/clang/tools/extra/clang-tidy/readability/RedundantDeclarationCheck.cpp
   42   const auto *Prev = D->getPreviousDecl();
tools/clang/tools/extra/clang-tidy/readability/RedundantSmartptrGetCheck.cpp
   20 internal::Matcher<Expr> callToGet(const internal::Matcher<Decl> &OnClass) {
   33 internal::Matcher<Decl> knownSmartptr() {
  113   if (Result.Nodes.getNodeAs<Decl>("duck_typing") == nullptr)
  133   bool IsPtrToPtr = Result.Nodes.getNodeAs<Decl>("ptr_to_ptr") != nullptr;
tools/clang/tools/extra/clang-tidy/readability/StaticDefinitionInAnonymousNamespaceCheck.cpp
   39   if (DC->getDeclKind() != Decl::Namespace)
tools/clang/tools/extra/clang-tidy/utils/DeclRefExprUtils.cpp
  140 bool isCopyConstructorArgument(const DeclRefExpr &DeclRef, const Decl &Decl,
  154 bool isCopyAssignmentArgument(const DeclRefExpr &DeclRef, const Decl &Decl,
tools/clang/tools/extra/clang-tidy/utils/DeclRefExprUtils.h
   36 allDeclRefExprs(const VarDecl &VarDecl, const Decl &Decl, ASTContext &Context);
   47 constReferenceDeclRefExprs(const VarDecl &VarDecl, const Decl &Decl,
   52 bool isCopyConstructorArgument(const DeclRefExpr &DeclRef, const Decl &Decl,
   57 bool isCopyAssignmentArgument(const DeclRefExpr &DeclRef, const Decl &Decl,
tools/clang/tools/extra/clang-tidy/utils/ExprSequence.cpp
  131       for (const Decl *TheDecl : TheDeclStmt->decls()) {
tools/clang/tools/extra/clangd/AST.cpp
   78 bool isImplementationDetail(const Decl *D) {
   83 SourceLocation findName(const clang::Decl *D) {
  199 llvm::Optional<SymbolID> getSymbolID(const Decl *D) {
tools/clang/tools/extra/clangd/AST.h
   30 bool isImplementationDetail(const Decl *D);
   36 SourceLocation findName(const clang::Decl *D);
   63 llvm::Optional<SymbolID> getSymbolID(const Decl *D);
tools/clang/tools/extra/clangd/CodeComplete.cpp
  222       for (const Decl *RD : SemaResult->Declaration->redecls())
  659   if (D.getKind() == Decl::CXXDestructor)
 1777     case Decl::TranslationUnit:
 1778     case Decl::Namespace:
 1779     case Decl::LinkageSpec:
tools/clang/tools/extra/clangd/FindSymbols.cpp
  195   void traverseDecl(Decl *D, std::vector<DocumentSymbol> &Results) {
  212   void traverseChildren(Decl *D, std::vector<DocumentSymbol> &Results) {
  216     for (auto *C : Scope->decls())
tools/clang/tools/extra/clangd/FindTarget.cpp
   88   llvm::SmallDenseMap<const Decl *, RelSet> Decls;
   91   static const Decl *getTemplatePattern(const Decl *D) {
   91   static const Decl *getTemplatePattern(const Decl *D) {
  105               getTemplatePattern(llvm::cast<Decl>(ND->getDeclContext()))))
  125   void report(const Decl *D, RelSet Flags) {
  132   void add(const Decl *D, RelSet Flags) {
  159     if (const Decl *Pat = getTemplatePattern(D)) {
  179         const Decl *D = DRE->getDecl();
  187         const Decl *D = ME->getMemberDecl();
  342 llvm::SmallVector<std::pair<const Decl *, DeclRelationSet>, 1>
  347   if (const Decl *D = N.get<Decl>())
  347   if (const Decl *D = N.get<Decl>())
  365 llvm::SmallVector<const Decl *, 1>
  367   llvm::SmallVector<const Decl *, 1> Result;
  636   bool VisitDecl(Decl *D) {
  673     if (auto *D = N.get<Decl>())
  726 void findExplicitReferences(const Decl *D,
tools/clang/tools/extra/clangd/FindTarget.h
   78 llvm::SmallVector<const Decl *, 1>
  108 void findExplicitReferences(const Decl *D,
  115 llvm::SmallVector<std::pair<const Decl *, DeclRelationSet>, 1>
tools/clang/tools/extra/clangd/HeaderSourceSwitch.cpp
   80   for (const auto *D : getIndexableLocalDecls(AST)) {
  126 std::vector<const Decl *> getIndexableLocalDecls(ParsedAST &AST) {
  127   std::vector<const Decl *> Results;
  128   std::function<void(Decl *)> TraverseDecl = [&](Decl *D) {
  139         for (auto *D : Scope->decls())
  149   for (auto *TopLevel : AST.getLocalTopLevelDecls())
tools/clang/tools/extra/clangd/HeaderSourceSwitch.h
   32 std::vector<const Decl *> getIndexableLocalDecls(ParsedAST &AST);
tools/clang/tools/extra/clangd/ParsedAST.cpp
   67   DeclTrackingASTConsumer(std::vector<Decl *> &TopLevelDecls)
   71     for (Decl *D : DG) {
   89   std::vector<Decl *> &TopLevelDecls;
   94   std::vector<Decl *> takeTopLevelDecls() { return std::move(TopLevelDecls); }
  103   std::vector<Decl *> TopLevelDecls;
  374   std::vector<Decl *> ParsedDecls = Action->takeTopLevelDecls();
  440 llvm::ArrayRef<Decl *> ParsedAST::getLocalTopLevelDecls() {
  492                      std::vector<Decl *> LocalTopLevelDecls,
tools/clang/tools/extra/clangd/ParsedAST.h
   83   ArrayRef<Decl *> getLocalTopLevelDecls();
  104             MainFileMacros Macros, std::vector<Decl *> LocalTopLevelDecls,
  130   std::vector<Decl *> LocalTopLevelDecls;
tools/clang/tools/extra/clangd/Quality.cpp
   43 static bool hasDeclInMainFile(const Decl &D) {
   45   for (auto *Redecl : D.redecls()) {
tools/clang/tools/extra/clangd/Selection.cpp
  192   bool TraverseDecl(Decl *X) {
  279   bool traverseNode(T *Node, const Func &Body) {
  370     if (const Decl *D = N.get<Decl>()) {
  370     if (const Decl *D = N.get<Decl>()) {
  518     if (const Decl* Current = CurrentNode->ASTNode.get<Decl>()) {
  518     if (const Decl* Current = CurrentNode->ASTNode.get<Decl>()) {
tools/clang/tools/extra/clangd/SemanticSelection.cpp
   45     if (const Decl *D = Node->ASTNode.get<Decl>()) {
   45     if (const Decl *D = Node->ASTNode.get<Decl>()) {
tools/clang/tools/extra/clangd/XRefs.cpp
   60 const Decl *getDefinition(const Decl *D) {
   60 const Decl *getDefinition(const Decl *D) {
  138   llvm::DenseSet<const Decl *> Decls;
  146   std::vector<const Decl *> getFoundDecls() const {
  147     std::vector<const Decl *> Result;
  148     for (const Decl *D : Decls)
  158   handleDeclOccurence(const Decl *D, index::SymbolRoleSet Roles,
  189       if (const auto *Def = getDefinition(D)) {
  200 std::vector<const Decl *> getDeclAtPosition(ParsedAST &AST,
  289   for (const Decl *D : getDeclAtPosition(AST, SourceLocationBeg)) {
  357                   const std::vector<const Decl *> &TargetDecls)
  359     for (const Decl *D : TargetDecls)
  378   handleDeclOccurence(const Decl *D, index::SymbolRoleSet Roles,
  391   llvm::SmallSet<const Decl *, 4> CanonicalTargets;
  397 findRefs(const std::vector<const Decl *> &Decls, ParsedAST &AST) {
  458 static std::string getLocalScope(const Decl *D) {
  483 static std::string getNamespaceScope(const Decl *D) {
  496 static std::string printDefinition(const Decl *D) {
  522   for (const Decl *Param : *Params) {
  570 static const FunctionDecl *getUnderlyingFunction(const Decl *D) {
  588 static void enhanceFromIndex(HoverInfo &Hover, const Decl *D,
  612 static HoverInfo getHoverContents(const Decl *D, const SymbolIndex *Index) {
  712 static HoverInfo getHoverContents(QualType T, const Decl *D, ASTContext &ASTCtx,
  851   const Decl *D = nullptr;
  962     for (const Decl *D : Decls) {
  992   for (const Decl *D : getDeclAtPosition(AST, Loc)) {
 1165   const Decl *D = Decls[0];
 1306 llvm::DenseSet<const Decl *> getNonLocalDeclRefs(ParsedAST &AST,
 1310   llvm::DenseSet<const Decl *> DeclRefs;
 1312     for (const Decl *D : Ref.Targets) {
tools/clang/tools/extra/clangd/XRefs.h
  162 llvm::DenseSet<const Decl *> getNonLocalDeclRefs(ParsedAST &AST,
tools/clang/tools/extra/clangd/index/FileIndex.cpp
   33                               llvm::ArrayRef<Decl *> DeclsToIndex,
   88   std::vector<Decl *> DeclsToIndex(
tools/clang/tools/extra/clangd/index/SymbolCollector.cpp
  108   return (ND.getKind() != Decl::EnumConstant) || llvm::any_of(Name, islower);
  223   case Decl::TranslationUnit:
  224   case Decl::Namespace:
  225   case Decl::LinkageSpec:
  226   case Decl::Enum:
  227   case Decl::ObjCProtocol:
  228   case Decl::ObjCInterface:
  229   case Decl::ObjCCategory:
  230   case Decl::ObjCCategoryImpl:
  231   case Decl::ObjCImplementation:
  248     const Decl *D, index::SymbolRoleSet Roles,
  263        Decl::FriendObjectKind::FOK_None) &&
  269   if (D->getFriendObjectKind() != Decl::FriendObjectKind::FOK_None)
  429     const Decl *Object = R.RelatedSymbol;
tools/clang/tools/extra/clangd/index/SymbolCollector.h
  102   handleDeclOccurence(const Decl *D, index::SymbolRoleSet Roles,
  164   llvm::DenseMap<const Decl *, const Decl *> CanonicalDecls;
  164   llvm::DenseMap<const Decl *, const Decl *> CanonicalDecls;
tools/clang/tools/extra/clangd/refactor/Rename.cpp
   42 llvm::Optional<std::string> getOtherRefFile(const Decl &D, StringRef MainFile,
   72 llvm::Optional<ReasonToReject> renamableWithinFile(const Decl &RenameDecl,
  150   for (Decl *TopLevelDecl : AST.getLocalTopLevelDecls()) {
tools/clang/tools/extra/clangd/refactor/tweaks/AnnotateHighlightings.cpp
   37   const Decl *CommonDecl = nullptr;
   40     CommonDecl = N->ASTNode.get<Decl>();
tools/clang/tools/extra/clangd/refactor/tweaks/DefineInline.cpp
  100 bool checkDeclsAreVisible(const llvm::DenseSet<const Decl *> &DeclRefs,
  109   for (const auto *DR : DeclRefs) {
  111     const Decl *D = DR->getCanonicalDecl();
tools/clang/tools/extra/clangd/refactor/tweaks/DumpAST.cpp
   53     return N.get<Decl>() || N.get<Stmt>() || N.get<Type>();
  112       if (auto *D = Node->ASTNode.get<Decl>())
tools/clang/tools/extra/clangd/refactor/tweaks/ExtractFunction.cpp
  358     const Decl *TheDecl;
  365     DeclInformation(const Decl *TheDecl, ZoneRelative DeclaredIn,
  372   llvm::DenseMap<const Decl *, DeclInformation> DeclInfoMap;
  380   DeclInformation *createDeclInfo(const Decl *D, ZoneRelative RelativeLoc);
  381   DeclInformation *getDeclInfoFor(const Decl *D);
  385 CapturedZoneInfo::createDeclInfo(const Decl *D, ZoneRelative RelativeLoc) {
  394 CapturedZoneInfo::getDeclInfoFor(const Decl *D) {
  474     bool VisitDecl(Decl *D) {
  481       const Decl *D = DRE->getDecl();
tools/clang/tools/extra/clangd/refactor/tweaks/ExtractVariable.cpp
   61   std::vector<clang::Decl *> ReferencedDecls;
   69 static std::vector<clang::Decl *>
   75     std::vector<Decl *> ReferencedDecls;
  102   for (const Decl *ReferencedDecl : ReferencedDecls) {
tools/clang/tools/extra/clangd/refactor/tweaks/RemoveUsingNamespace.cpp
  111   if (!dyn_cast<Decl>(TargetDirective->getDeclContext()))
tools/clang/tools/extra/clangd/unittests/FindTargetTests.cpp
   37   PrintedDecl(const Decl *D, DeclRelationSet Relations = {})
tools/clang/tools/extra/clangd/unittests/SelectionTests.cpp
   45   if (llvm::isa_and_nonnull<TranslationUnitDecl>(N->ASTNode.get<Decl>()))
  332   auto *D = dyn_cast<CXXRecordDecl>(T.commonAncestor()->ASTNode.get<Decl>());
tools/clang/tools/extra/clangd/unittests/XRefsTests.cpp
 2283     for (const Decl *D : NonLocalDeclRefs) {
tools/clang/tools/libclang/CIndex.cpp
  194     const Decl *D = getCursorDecl(Cursor);
  291 static bool isInLexicalContext(Decl *D, DeclContext *DC) {
  309   SmallVector<Decl *, 16> Decls;
  337   SmallVectorImpl<Decl *>::iterator DIt = Decls.begin();
  338   for (SmallVectorImpl<Decl *>::iterator DE = Decls.end(); DIt != DE; ++DIt) {
  339     Decl *D = *DIt;
  382     Decl *D = cast<Decl>(DC);
  382     Decl *D = cast<Decl>(DC);
  499     Decl *D = const_cast<Decl *>(getCursorDecl(Cursor));
  629     Decl *D = *I;
  640 Optional<bool> CursorVisitor::handleDeclForVisitation(const Decl *D) {
  987                                       SmallVectorImpl<Decl *> &Decls) {
  990     Decl *D_next = *next;
 1017   SmallVector<Decl *, 24> DeclsInContainer;
 1036   for (auto *SubDecl : D->decls()) {
 1054   for (SmallVectorImpl<Decl*>::iterator I = DeclsInContainer.begin(),
 1659     if (Decl *D = TL.getParam(I))
 1814 bool CursorVisitor::VisitAttributes(Decl *D) {
 1865   DeclVisit(const Decl *D, CXCursor parent, bool isFirst) :
 1871   const Decl *get() const { return static_cast<const Decl *>(data[0]); }
 2088   void AddDecl(const Decl *D, bool isFirst = true);
 2111 void EnqueueVisitor::AddDecl(const Decl *D, bool isFirst) {
 2577   for (const auto *D : S->decls()) {
 3012         const Decl *D = cast<DeclVisit>(&LI)->get();
 3693   const Decl *D = getCursorDecl(C);
 3934     if (V->getKind() == Decl::Function) {
 3947 static const Expr *evaluateDeclExpr(const Decl *D) {
 3977   const Decl *D = getCursorDecl(C);
 4332 static const Decl *getDeclFromExpr(const Stmt *E) {
 4450 static CXString getDeclSpelling(const Decl *D) {
 4547       if (const Decl *D = Storage.dyn_cast<const Decl *>()) {
 4547       if (const Decl *D = Storage.dyn_cast<const Decl *>()) {
 4590     const Decl *D = getDeclFromExpr(getCursorExpr(C));
 4748   const Decl *D = getCursorDecl(C);
 4761   const Decl *D = getCursorDecl(C);
 4775   const Decl *D = getCursorDecl(C);
 4958     const Decl *D = getCursorDecl(C);
 4978   const Decl *D = getCursorDecl(C);
 5626     if (const Decl *D = getCursorDecl(*BestCursor)) {
 5761     if (const Decl *D = getCursorDecl(C))
 5922   const Decl *D = getCursorDecl(C);
 6055     const Decl *D = cxcursor::getCursorDecl(C);
 6078     const Decl *D = cxcursor::getCursorDecl(C);
 6129     const Decl *D = getCursorDecl(C);
 6144     const Decl *D = getDeclFromExpr(E);
 6253   const Decl *D = getCursorDecl(C);
 6260   case Decl::Namespace:
 6261   case Decl::Typedef:
 6262   case Decl::TypeAlias:
 6263   case Decl::TypeAliasTemplate:
 6264   case Decl::TemplateTypeParm:
 6265   case Decl::EnumConstant:
 6266   case Decl::Field:
 6267   case Decl::Binding:
 6268   case Decl::MSProperty:
 6269   case Decl::IndirectField:
 6270   case Decl::ObjCIvar:
 6271   case Decl::ObjCAtDefsField:
 6272   case Decl::ImplicitParam:
 6273   case Decl::ParmVar:
 6274   case Decl::NonTypeTemplateParm:
 6275   case Decl::TemplateTemplateParm:
 6276   case Decl::ObjCCategoryImpl:
 6277   case Decl::ObjCImplementation:
 6278   case Decl::AccessSpec:
 6279   case Decl::LinkageSpec:
 6280   case Decl::Export:
 6281   case Decl::ObjCPropertyImpl:
 6282   case Decl::FileScopeAsm:
 6283   case Decl::StaticAssert:
 6284   case Decl::Block:
 6285   case Decl::Captured:
 6286   case Decl::OMPCapturedExpr:
 6287   case Decl::Label:  // FIXME: Is this right??
 6288   case Decl::ClassScopeFunctionSpecialization:
 6289   case Decl::CXXDeductionGuide:
 6290   case Decl::Import:
 6291   case Decl::OMPThreadPrivate:
 6292   case Decl::OMPAllocate:
 6293   case Decl::OMPDeclareReduction:
 6294   case Decl::OMPDeclareMapper:
 6295   case Decl::OMPRequires:
 6296   case Decl::ObjCTypeParam:
 6297   case Decl::BuiltinTemplate:
 6298   case Decl::PragmaComment:
 6299   case Decl::PragmaDetectMismatch:
 6300   case Decl::UsingPack:
 6301   case Decl::Concept:
 6306   case Decl::Empty:
 6307   case Decl::TranslationUnit:
 6308   case Decl::ExternCContext:
 6312   case Decl::UnresolvedUsingTypename:
 6313   case Decl::UnresolvedUsingValue:
 6316   case Decl::UsingDirective:
 6320   case Decl::NamespaceAlias:
 6323   case Decl::Enum:
 6324   case Decl::Record:
 6325   case Decl::CXXRecord:
 6326   case Decl::ClassTemplateSpecialization:
 6327   case Decl::ClassTemplatePartialSpecialization:
 6332   case Decl::Function:
 6333   case Decl::CXXMethod:
 6334   case Decl::CXXConstructor:
 6335   case Decl::CXXDestructor:
 6336   case Decl::CXXConversion: {
 6343   case Decl::Var:
 6344   case Decl::VarTemplateSpecialization:
 6345   case Decl::VarTemplatePartialSpecialization:
 6346   case Decl::Decomposition: {
 6353   case Decl::FunctionTemplate: {
 6360   case Decl::ClassTemplate: {
 6368   case Decl::VarTemplate: {
 6375   case Decl::Using:
 6379   case Decl::UsingShadow:
 6380   case Decl::ConstructorUsingShadow:
 6385   case Decl::ObjCMethod: {
 6404   case Decl::ObjCCategory:
 6410   case Decl::ObjCProtocol:
 6415   case Decl::ObjCInterface: {
 6430   case Decl::ObjCProperty:
 6435   case Decl::ObjCCompatibleAlias:
 6443   case Decl::Friend:
 6448   case Decl::FriendTemplate:
 6468   if (const Decl *D = getCursorDecl(C)) {
 6499   const Decl *D = Storage.get<const Decl *>();
 6499   const Decl *D = Storage.get<const Decl *>();
 6522   const Decl *D = Storage.get<const Decl *>();
 6522   const Decl *D = Storage.get<const Decl *>();
 7000         const Decl *parentDecl = getCursorDecl(Cursor);
 7135       if (const Decl *D = getCursorDecl(cursor))
 7223     if (const Decl *D = getCursorDecl(cursor)) {
 7695   const Decl *D = cxcursor::getCursorDecl(cursor);
 7718   const Decl *D = cxcursor::getCursorDecl(cursor);
 7733 static CXLanguageKind getDeclLanguage(const Decl *D) {
 7740     case Decl::ImplicitParam:
 7741     case Decl::ObjCAtDefsField:
 7742     case Decl::ObjCCategory:
 7743     case Decl::ObjCCategoryImpl:
 7744     case Decl::ObjCCompatibleAlias:
 7745     case Decl::ObjCImplementation:
 7746     case Decl::ObjCInterface:
 7747     case Decl::ObjCIvar:
 7748     case Decl::ObjCMethod:
 7749     case Decl::ObjCProperty:
 7750     case Decl::ObjCPropertyImpl:
 7751     case Decl::ObjCProtocol:
 7752     case Decl::ObjCTypeParam:
 7754     case Decl::CXXConstructor:
 7755     case Decl::CXXConversion:
 7756     case Decl::CXXDestructor:
 7757     case Decl::CXXMethod:
 7758     case Decl::CXXRecord:
 7759     case Decl::ClassTemplate:
 7760     case Decl::ClassTemplatePartialSpecialization:
 7761     case Decl::ClassTemplateSpecialization:
 7762     case Decl::Friend:
 7763     case Decl::FriendTemplate:
 7764     case Decl::FunctionTemplate:
 7765     case Decl::LinkageSpec:
 7766     case Decl::Namespace:
 7767     case Decl::NamespaceAlias:
 7768     case Decl::NonTypeTemplateParm:
 7769     case Decl::StaticAssert:
 7770     case Decl::TemplateTemplateParm:
 7771     case Decl::TemplateTypeParm:
 7772     case Decl::UnresolvedUsingTypename:
 7773     case Decl::UnresolvedUsingValue:
 7774     case Decl::Using:
 7775     case Decl::UsingDirective:
 7776     case Decl::UsingShadow:
 7783 static CXAvailabilityKind getCursorAvailabilityForDecl(const Decl *D) {
 7792           cast<Decl>(EnumConst->getDeclContext()));
 7807     if (const Decl *D = cxcursor::getCursorDecl(cursor))
 7834     const Decl *D, int *always_deprecated, CXString *deprecated_message,
 7870           cast<Decl>(EnumConst->getDeclContext()), always_deprecated,
 7943   const Decl *D = cxcursor::getCursorDecl(cursor);
 7983   const Decl *D = cxcursor::getCursorDecl(cursor);
 8001 static const Decl *maybeGetTemplateCursor(const Decl *D) {
 8001 static const Decl *maybeGetTemplateCursor(const Decl *D) {
 8019   const Decl *D = getCursorDecl(C);
 8050     if (const Decl *D = getCursorDecl(cursor)) {
 8055       return MakeCXCursor(maybeGetTemplateCursor(cast<Decl>(DC)), 
 8061     if (const Decl *D = getCursorDecl(cursor))
 8070     if (const Decl *D = getCursorDecl(cursor)) {
 8075       return MakeCXCursor(maybeGetTemplateCursor(cast<Decl>(DC)), 
 8151   Decl::ObjCDeclQualifier QT = Decl::OBJC_TQ_None;
 8151   Decl::ObjCDeclQualifier QT = Decl::OBJC_TQ_None;
 8152   const Decl *D = getCursorDecl(C);
 8157   if (QT == Decl::OBJC_TQ_None)
 8161   if (QT & Decl::OBJC_TQ_In) Result |= CXObjCDeclQualifier_In;
 8162   if (QT & Decl::OBJC_TQ_Inout) Result |= CXObjCDeclQualifier_Inout;
 8163   if (QT & Decl::OBJC_TQ_Out) Result |= CXObjCDeclQualifier_Out;
 8164   if (QT & Decl::OBJC_TQ_Bycopy) Result |= CXObjCDeclQualifier_Bycopy;
 8165   if (QT & Decl::OBJC_TQ_Byref) Result |= CXObjCDeclQualifier_Byref;
 8166   if (QT & Decl::OBJC_TQ_Oneway) Result |= CXObjCDeclQualifier_Oneway;
 8175   const Decl *D = getCursorDecl(C);
 8188   const Decl *D = getCursorDecl(C);
 8203   const Decl *D = getCursorDecl(C);
 8221   const Decl *D = getCursorDecl(C);
 8234   const Decl *D = getCursorDecl(C);
 8249   const Decl *D = getCursorDecl(C);
 8365   const Decl *D = cxcursor::getCursorDecl(C);
 8375   const Decl *D = cxcursor::getCursorDecl(C);
 8385   const Decl *D = cxcursor::getCursorDecl(C);
 8395   const Decl *D = cxcursor::getCursorDecl(C);
 8416   const Decl *D = cxcursor::getCursorDecl(C);
 8426   const Decl *D = cxcursor::getCursorDecl(C);
 8436   const Decl *D = cxcursor::getCursorDecl(C);
 8446   const Decl *D = cxcursor::getCursorDecl(C);
 8456   const Decl *D = cxcursor::getCursorDecl(C);
 8466   const auto *D = cxcursor::getCursorDecl(C);
 8477   const Decl *D = cxcursor::getCursorDecl(C);
tools/clang/tools/libclang/CIndexCXX.cpp
   86   const Decl *D = getCursorDecl(C);
   90   Decl *Template = nullptr;
tools/clang/tools/libclang/CIndexHigh.cpp
   23                                     const Decl *D,
   24                                     SmallVectorImpl<const Decl *> &Methods) {
   48   const Decl *Dcl;
   52   typedef SmallVector<const Decl *, 8> TopMethodsTy;
   56                          const Decl *D, int selectorIdIdx,
   78   const Decl *getCanonical(const Decl *D) const {
   78   const Decl *getCanonical(const Decl *D) const {
   96   bool isHit(const Decl *D) const {
  111   bool isOverriddingMethod(const Decl *D) const {
  151   const Decl *D = cxcursor::getCursorDecl(declCursor);
  219   const Decl *Dcl = cxcursor::getCursorDecl(declCursor);
  228     return clang_visitChildren(cxcursor::MakeCXCursor(cast<Decl>(DC), TU),
tools/clang/tools/libclang/CIndexUSRs.cpp
   34 bool cxcursor::getDeclCursorUSR(const Decl *D, SmallVectorImpl<char> &Buf) {
   42     const Decl *D = cxcursor::getCursorDecl(C);
tools/clang/tools/libclang/CXComment.cpp
   34   const Decl *D = getCursorDecl(C);
tools/clang/tools/libclang/CXCursor.cpp
   90 CXCursor cxcursor::MakeCXCursor(const Attr *A, const Decl *Parent,
   97 CXCursor cxcursor::MakeCXCursor(const Decl *D, CXTranslationUnit TU,
  126 CXCursor cxcursor::MakeCXCursor(const Stmt *S, const Decl *Parent,
  980 CXCursor cxcursor::MakeCursorOverloadedDeclRef(const Decl *D,
 1014 const Decl *cxcursor::getCursorDecl(CXCursor Cursor) {
 1175     const Decl *D = cxcursor::getCursorDecl(C);
 1197     const Decl *D = cxcursor::getCursorDecl(C);
 1430     const Decl *decl = getCursorDecl(cursor);
tools/clang/tools/libclang/CXCursor.h
   50 CXCursor MakeCXCursor(const clang::Attr *A, const clang::Decl *Parent,
   52 CXCursor MakeCXCursor(const clang::Decl *D, CXTranslationUnit TU,
   55 CXCursor MakeCXCursor(const clang::Stmt *S, const clang::Decl *Parent,
  222 CXCursor MakeCursorOverloadedDeclRef(const Decl *D, SourceLocation Location,
  231 typedef llvm::PointerUnion3<const OverloadExpr *, const Decl *,
  240 const Decl *getCursorDecl(CXCursor Cursor);
  283 bool getDeclCursorUSR(const Decl *D, SmallVectorImpl<char> &Buf);
tools/clang/tools/libclang/CXIndexDataConsumer.cpp
  158     const Decl *D, SymbolRoleSet Roles, ArrayRef<SymbolRelation> Relations,
  193                                       cast<Decl>(ASTNode.ContainerDC),
  279 AttrListInfo::AttrListInfo(const Decl *D, CXIndexDataConsumer &IdxCtx)
  332 AttrListInfo::create(const Decl *D, CXIndexDataConsumer &IdxCtx) {
  420 bool CXIndexDataConsumer::isFunctionLocalDecl(const Decl *D) {
  961 CXIdxClientEntity CXIndexDataConsumer::getClientEntity(const Decl *D) const {
  970 void CXIndexDataConsumer::setClientEntity(const Decl *D, CXIdxClientEntity client) {
 1054 CXIndexDataConsumer::getEntityContainer(const Decl *D) const {
 1190   ContInfo.cursor = getCursor(cast<Decl>(DC));
 1216 bool CXIndexDataConsumer::shouldIgnoreIfImplicit(const Decl *D) {
 1230 bool CXIndexDataConsumer::isTemplateImplicitInstantiation(const Decl *D) {
tools/clang/tools/libclang/CXIndexDataConsumer.h
  250   AttrListInfo(const Decl *D, CXIndexDataConsumer &IdxCtx);
  252   static IntrusiveRefCntPtr<AttrListInfo> create(const Decl *D,
  285   typedef llvm::DenseMap<const Decl *, CXIdxClientEntity> EntityMapTy;
  291   typedef std::pair<const FileEntry *, const Decl *> RefFileOccurrence;
  358   static bool isFunctionLocalDecl(const Decl *D);
  428   CXIdxClientEntity getClientEntity(const Decl *D) const;
  429   void setClientEntity(const Decl *D, CXIdxClientEntity client);
  431   static bool isTemplateImplicitInstantiation(const Decl *D);
  434   bool handleDeclOccurence(const Decl *D, index::SymbolRoleSet Roles,
  460   const DeclContext *getEntityContainer(const Decl *D) const;
  472   CXCursor getCursor(const Decl *D) {
  478   static bool shouldIgnoreIfImplicit(const Decl *D);
tools/clang/tools/libclang/CXType.cpp
  229     const Decl *D = cxcursor::getCursorDecl(C);
  310     const Decl *D = cxcursor::getCursorDecl(C);
  328     const Decl *D = cxcursor::getCursorDecl(C);
  345     const Decl *D = cxcursor::getCursorDecl(C);
  361     const Decl *D = cxcursor::getCursorDecl(C);
  377     const Decl *D = getCursorDecl(C);
  490   Decl *D = nullptr;
  721     const Decl *D = cxcursor::getCursorDecl(C);
 1060     const Decl *D = cxcursor::getCursorDecl(C);
 1101   const Decl *D = cxcursor::getCursorDecl(C);
 1256   const Decl *D = cxcursor::getCursorDecl(C);
 1270   const Decl *D = cxcursor::getCursorDecl(C);
 1279   const Decl *D = cxcursor::getCursorDecl(C);
tools/clang/tools/libclang/CursorVisitor.h
   72   const Decl *StmtParent;
  102   SmallVectorImpl<Decl *>::iterator *FileDI_current;
  103   SmallVectorImpl<Decl *>::iterator FileDE_current;
  122     const Decl *&StmtParent;
  126     SetParentRAII(CXCursor &Parent, const Decl *&StmtParent,
  199   bool VisitAttributes(Decl *D);
  270   Optional<bool> handleDeclForVisitation(const Decl *D);
tools/clang/tools/libclang/Indexing.cpp
  378   bool shouldSkipFunctionBody(const Decl *D) {
tools/clang/unittests/AST/ASTContextParentMapTest.cpp
   27   MatchVerifier<Decl> Verifier;
   53   MatchVerifier<Decl> DeclVerifier;
  109   MatchVerifier<Decl> LambdaVerifier;
tools/clang/unittests/AST/ASTImporterFixtures.cpp
   78 Decl *ASTImporterTestBase::TU::import(
   80     Decl *FromDecl) {
   90 llvm::Expected<Decl *> ASTImporterTestBase::TU::importOrError(
   92     Decl *FromDecl) {
  128 ASTImporterTestBase::TU *ASTImporterTestBase::findFromTU(Decl *From) {
  139 std::tuple<Decl *, Decl *>
  139 std::tuple<Decl *, Decl *>
  165   Decl *Imported =
  194 Decl *ASTImporterTestBase::Import(Decl *From, Language ToLang) {
  194 Decl *ASTImporterTestBase::Import(Decl *From, Language ToLang) {
  198   Decl *To = FromTU->import(SharedStatePtr, ToAST.get(), From);
  202 llvm::Expected<Decl *> ASTImporterTestBase::importOrError(Decl *From,
  202 llvm::Expected<Decl *> ASTImporterTestBase::importOrError(Decl *From,
  207   llvm::Expected<Decl *> To =
  212 QualType ASTImporterTestBase::ImportType(QualType FromType, Decl *TUDecl,
tools/clang/unittests/AST/ASTImporterFixtures.h
  120     Decl *import(const std::shared_ptr<ASTImporterSharedState> &SharedState,
  121                  ASTUnit *ToAST, Decl *FromDecl);
  122     llvm::Expected<Decl *>
  124                   ASTUnit *ToAST, Decl *FromDecl);
  151   TU *findFromTU(Decl *From);
  156   std::tuple<Decl *, Decl *>
  156   std::tuple<Decl *, Decl *>
  172   Decl *Import(Decl *From, Language ToLang);
  172   Decl *Import(Decl *From, Language ToLang);
  174   template <class DeclT> DeclT *Import(DeclT *From, Language Lang) {
  174   template <class DeclT> DeclT *Import(DeclT *From, Language Lang) {
  175     return cast_or_null<DeclT>(Import(cast<Decl>(From), Lang));
  180   llvm::Expected<Decl *> importOrError(Decl *From, Language ToLang);
  180   llvm::Expected<Decl *> importOrError(Decl *From, Language ToLang);
  182   QualType ImportType(QualType FromType, Decl *TUDecl, Language ToLang);
tools/clang/unittests/AST/ASTImporterGenericRedeclTest.cpp
   24   BindableMatcher<Decl> getPattern() {
   33   BindableMatcher<Decl> getPattern() {
   42   BindableMatcher<Decl> getPattern() { return varDecl(hasName("X")); }
   54   BindableMatcher<Decl> getPattern() {
   63   BindableMatcher<Decl> getPattern() {
   88   BindableMatcher<Decl> getPattern() {
  105   BindableMatcher<Decl> getPattern() {
  116   BindableMatcher<Decl> getPattern() const { return TypeParam().getPattern(); }
  118   void CheckPreviousDecl(Decl *Prev, Decl *Current) {
  118   void CheckPreviousDecl(Decl *Prev, Decl *Current) {
  159     Decl *FromTU = getTuDecl(getPrototype(), Lang_CXX);
  163     Decl *ImportedD = Import(FromD, Lang_CXX);
  164     Decl *ToTU = ImportedD->getTranslationUnitDecl();
  176     Decl *FromTU = getTuDecl(getDefinition(), Lang_CXX);
  180     Decl *ImportedD = Import(FromD, Lang_CXX);
  181     Decl *ToTU = ImportedD->getTranslationUnitDecl();
  192     Decl *FromTU = getTuDecl(getPrototype() + getPrototype(), Lang_CXX);
  198     Decl *Imported0 = Import(From0, Lang_CXX);
  199     Decl *Imported1 = Import(From1, Lang_CXX);
  200     Decl *ToTU = Imported0->getTranslationUnitDecl();
  214     Decl *FromTU = getTuDecl(getPrototype() + getDefinition(), Lang_CXX);
  220     Decl *ImportedProto = Import(FromProto, Lang_CXX);
  221     Decl *ImportedDef = Import(FromDef, Lang_CXX);
  222     Decl *ToTU = ImportedProto->getTranslationUnitDecl();
  236     Decl *FromTU = getTuDecl(getDefinition() + getPrototype(), Lang_CXX);
  242     Decl *ImportedDef = Import(FromDef, Lang_CXX);
  243     Decl *ImportedProto = Import(FromProto, Lang_CXX);
  244     Decl *ToTU = ImportedDef->getTranslationUnitDecl();
  258     Decl *FromTU0 = getTuDecl(getPrototype(), Lang_CXX, "input0.cc");
  259     Decl *FromTU1 = getTuDecl(getPrototype(), Lang_CXX, "input1.cc");
  265     Decl *Imported0 = Import(From0, Lang_CXX);
  266     Decl *Imported1 = Import(From1, Lang_CXX);
  267     Decl *ToTU = Imported0->getTranslationUnitDecl();
  281     Decl *FromTU0 = getTuDecl(getDefinition(), Lang_CXX, "input0.cc");
  282     Decl *FromTU1 = getTuDecl(getDefinition(), Lang_CXX, "input1.cc");
  288     Decl *Imported0 = Import(From0, Lang_CXX);
  289     Decl *Imported1 = Import(From1, Lang_CXX);
  290     Decl *ToTU = Imported0->getTranslationUnitDecl();
  303     Decl *FromTUDef = getTuDecl(getDefinition(), Lang_CXX, "input0.cc");
  304     Decl *FromTUProto = getTuDecl(getPrototype(), Lang_CXX, "input1.cc");
  311     Decl *ImportedDef = Import(FromDef, Lang_CXX);
  312     Decl *ImportedProto = Import(FromProto, Lang_CXX);
  313     Decl *ToTU = ImportedDef->getTranslationUnitDecl();
  328     Decl *FromTUProto = getTuDecl(getPrototype(), Lang_CXX, "input0.cc");
  329     Decl *FromTUDef = getTuDecl(getDefinition(), Lang_CXX, "input1.cc");
  336     Decl *ImportedProto = Import(FromProto, Lang_CXX);
  337     Decl *ImportedDef = Import(FromDef, Lang_CXX);
  338     Decl *ToTU = ImportedDef->getTranslationUnitDecl();
  353     Decl *FromTU = getTuDecl(getPrototype() + getDefinition(), Lang_CXX);
  358     Decl *ImportedD = Import(FromD, Lang_CXX);
  359     Decl *ToTU = ImportedD->getTranslationUnitDecl();
  368       Decl *FromTU = getTuDecl(getPrototype(), Lang_CXX, "input0.cc");
  373       Decl *FromTU =
  379     Decl *ToTU = ToAST->getASTContext().getTranslationUnitDecl();
tools/clang/unittests/AST/ASTImporterODRStrategiesTest.cpp
   37   BindableMatcher<Decl> getPattern() {
   47   BindableMatcher<Decl> getPattern() { return typedefNameDecl(hasName("X")); }
   55   BindableMatcher<Decl> getPattern() { return typedefNameDecl(hasName("X")); }
   63   BindableMatcher<Decl> getPattern() { return enumDecl(hasName("X")); }
   71   BindableMatcher<Decl> getPattern() { return enumConstantDecl(hasName("X")); }
   80   BindableMatcher<Decl> getPattern() {
   92   BindableMatcher<Decl> getPattern() { return varDecl(hasName("X")); }
  104   BindableMatcher<Decl> getPattern() {
  123   BindableMatcher<Decl> getPattern() {
  131 static const internal::VariadicDynCastAllOfMatcher<Decl, VarTemplateDecl>
  146   BindableMatcher<Decl> getPattern() { return varTemplateDecl(hasName("X")); }
  167   BindableMatcher<Decl> getPattern() {
  197   BindableMatcher<Decl> getPattern() {
  207     Decl, VarTemplateSpecializationDecl>
  222   BindableMatcher<Decl> getPattern() {
  246   static BindableMatcher<Decl> getPattern() { return TypeParam().getPattern(); }
  252     Decl *ToTU = getToTuDecl(ToTUContent(), getLang());
  255     Decl *FromTU = getTuDecl(FromTUContent(), getLang());
  265   static void CheckImportedAsNew(llvm::Expected<Decl *> &Result, Decl *ToTU,
  265   static void CheckImportedAsNew(llvm::Expected<Decl *> &Result, Decl *ToTU,
  266                                  Decl *ToD) {
  268     Decl *ImportedD = *Result;
  283   static void CheckImportNameConflict(llvm::Expected<Decl *> &Result,
  284                                       Decl *ToTU, Decl *ToD) {
  284                                       Decl *ToTU, Decl *ToD) {
  290   static void CheckImportFoundExisting(llvm::Expected<Decl *> &Result,
  291                                       Decl *ToTU, Decl *ToD) {
  291                                       Decl *ToTU, Decl *ToD) {
tools/clang/unittests/AST/ASTImporterTest.cpp
   64              MatchVerifier<NodeType> &Verifier,
   65              const BindableMatcher<NodeType> &SearchMatcher,
   66              const BindableMatcher<NodeType> &VerificationMatcher) {
   86     auto ToImport = selectFirst<NodeType>(DeclToImportID, FoundNodes);
   92     BindableMatcher<NodeType> WrapperMatcher(VerificationMatcher);
  112              MatchVerifier<NodeType> &Verifier,
  113              const BindableMatcher<NodeType> &VerificationMatcher) {
  132                   MatchVerifier<NodeType> &Verifier,
  144     BindableMatcher<Decl> ImportPredicate;
  192                           BindableMatcher<Decl> FinalSelectPredicate,
  193                           BindableMatcher<Decl> VerificationMatcher) {
  225       const Decl *ToImport = selectFirst<Decl>(DeclToImportID, FoundDecl);
  225       const Decl *ToImport = selectFirst<Decl>(DeclToImportID, FoundDecl);
  236     const Decl *ToVerify = selectFirst<Decl>(DeclToVerifyID, FoundDecl);
  236     const Decl *ToVerify = selectFirst<Decl>(DeclToVerifyID, FoundDecl);
  237     MatchVerifier<Decl> Verifier;
  255   Decl *FromTU = getTuDecl("void f();", Lang_CXX);
  265   Decl *FromTU = getTuDecl("void f(); void f(); void f();", Lang_CXX);
  279   Decl *FromTU = getTuDecl("void f(); void f(); void f();", Lang_CXX);
  298   llvm::Expected<Decl *> ImportImpl(Decl *FromD) override {
  298   llvm::Expected<Decl *> ImportImpl(Decl *FromD) override {
  302     for (Decl *D : getToContext().getTranslationUnitDecl()->decls()) {
  330   Decl *From, *To;
  348   Decl *From, *To;
  363   Decl *FromTU;
  396   std::array<Decl* ,2> Res;
  398   for (Decl *Di : path.getCycleAtBack()) {
  413   std::array<Decl* ,4> Res;
  415   for (Decl *Di : path.getCycleAtBack()) {
  434   std::array<Decl* ,4> Res;
  436   for (Decl *Di : path.getCycleAtBack()) {
  450   for (Decl *Di : path.getCycleAtBack()) {
  463   MatchVerifier<Decl> Verifier;
  482   MatchVerifier<Decl> Verifier;
  493   MatchVerifier<Decl> Verifier;
  501   MatchVerifier<Decl> Verifier;
  510   MatchVerifier<Decl> Verifier;
  524   MatchVerifier<Decl> Verifier;
  532   MatchVerifier<Decl> Verifier;
  552   MatchVerifier<Decl> Verifier;
  565   MatchVerifier<Decl> Verifier;
  578   MatchVerifier<Decl> Verifier;
  596   MatchVerifier<Decl> Verifier;
  613   MatchVerifier<Decl> Verifier;
  622   MatchVerifier<Decl> Verifier;
  643   MatchVerifier<Decl> Verifier;
  657   MatchVerifier<Decl> Verifier;
  678   MatchVerifier<Decl> Verifier;
  702   MatchVerifier<Decl> Verifier;
  716   MatchVerifier<Decl> Verifier;
  745   MatchVerifier<Decl> Verifier;
  755   MatchVerifier<Decl> Verifier;
  767   MatchVerifier<Decl> Verifier;
  775   MatchVerifier<Decl> Verifier;
  783   MatchVerifier<Decl> Verifier;
  807   MatchVerifier<Decl> Verifier;
  819 const internal::VariadicDynCastAllOfMatcher<Decl, VarTemplateSpecializationDecl>
  823   MatchVerifier<Decl> Verifier;
  836   MatchVerifier<Decl> Verifier;
  854   MatchVerifier<Decl> Verifier;
  871   MatchVerifier<Decl> Verifier;
  903   MatchVerifier<Decl> Verifier;
  915   MatchVerifier<Decl> Verifier;
  931   MatchVerifier<Decl> Verifier;
  944   MatchVerifier<Decl> Verifier;
  956   Decl *FromTU = getTuDecl("int declToImport() { "
  972   Decl *FromTU = getTuDecl(
  983   Decl *FromTU = getTuDecl(
 1000   Decl *FromTU = getTuDecl(
 1015   MatchVerifier<Decl> Verifier;
 1028   MatchVerifier<Decl> Verifier;
 1046 const internal::VariadicDynCastAllOfMatcher<Decl,
 1050   MatchVerifier<Decl> Verifier;
 1059   MatchVerifier<Decl> Verifier;
 1072   MatchVerifier<Decl> Verifier;
 1099   MatchVerifier<Decl> Verifier;
 1115   MatchVerifier<Decl> Verifier;
 1129   MatchVerifier<Decl> Verifier;
 1140   MatchVerifier<Decl> Verifier;
 1151   Decl *FromTU = getTuDecl(
 1172   Decl *FromTU = getTuDecl("template<class X> struct S{};", Lang_CXX);
 1178   Decl *ToTemplated = To->getTemplatedDecl();
 1179   Decl *ToTemplated1 = Import(From->getTemplatedDecl(), Lang_CXX);
 1186   Decl *FromTU = getTuDecl("template<class X> void f(){}", Lang_CXX);
 1192   Decl *ToTemplated = To->getTemplatedDecl();
 1193   Decl *ToTemplated1 = Import(From->getTemplatedDecl(), Lang_CXX);
 1200   Decl *FromTU = getTuDecl("template<class X> struct S{};", Lang_CXX);
 1216   Decl *FromTU = getTuDecl("template<class X> void f(){}", Lang_CXX);
 1239   Decl *FromTU = getTuDecl(Code, Lang_CXX);
 1264   Decl *From, *To;
 1286   Decl *From, *To;
 1302   MatchVerifier<Decl> Verifier;
 1314   Decl *From, *To;
 1340   Decl *From, *To;
 1366   Decl *From, *To;
 1395   Decl *From, *To;
 1424   for (Decl *D : Node.decls()) {
 1439   Decl *From, *To;
 1466   Decl *From, *To;
 1472   MatchVerifier<Decl> Verifier;
 1479   Decl *From, *To;
 1492   MatchVerifier<Decl> Verifier;
 1501   Decl *From, *To;
 1517   MatchVerifier<Decl> Verifier;
 1525   Decl *From, *To;
 1533   MatchVerifier<Decl> Verifier;
 1542   Decl *From, *To;
 1551   MatchVerifier<Decl> Verifier;
 1560   Decl *From, *To;
 1580   Decl *From, *To;
 1584   MatchVerifier<Decl> Verifier;
 1592   Decl *FromTU = getTuDecl(
 1598   Decl *From = LastDeclMatcher<Decl>{}.match(FromTU, functionDecl());
 1599   const Decl *To = Import(From, Lang_CXX);
 1605   Decl *From, *To;
 1626     Decl *FromTU = getTuDecl(
 1639     Decl *FromTU = getTuDecl(
 1659   Decl *ToTU = getToTuDecl(
 1676   Decl *FromTU = getTuDecl(
 1699   Decl *ToTU = getToTuDecl(
 1711   Decl *FromTU = getTuDecl(
 1741   Decl *FromTU = getTuDecl(
 1771   Decl *FromTU = getTuDecl(
 1790   Decl *ToTU = getToTuDecl(
 1809   Decl *FromTU = getTuDecl(
 1832   Decl *FromTU = getTuDecl(
 1863   Decl *FromTU0 = getTuDecl(Code, Lang_C, "input0.c");
 1865   Decl *FromTU1 = getTuDecl(Code, Lang_C, "input1.c");
 1882   Decl *FromTU0 = getTuDecl(
 1891   Decl *FromTU1 = getTuDecl(
 1918     Decl *FromTU = getTuDecl("extern int x;", Lang_CXX, "input0.cc");
 1924     Decl *FromTU = getTuDecl("int x;", Lang_CXX, "input1.cc");
 1931     Decl *FromTU =
 1944     Decl *ToTU = getToTuDecl("int x = 1;", Lang_CXX);
 1949     Decl *FromTU = getTuDecl(
 1962     Decl *ToTU = getToTuDecl(
 1972     Decl *FromTU = getTuDecl(
 1992   Decl *FromTU = getTuDecl("int x;", Lang_CXX, "input0.cc");
 2009   Decl *FromTU = getTuDecl("void f(); void f() { f(); }", Lang_CXX);
 2014   Decl *ImportedD = Import(From, Lang_CXX);
 2015   Decl *ToTU = ImportedD->getTranslationUnitDecl();
 2027   Decl *FromTU = getTuDecl("void f(); void f() { f(); }", Lang_CXX);
 2032   Decl *ImportedD = Import(From, Lang_CXX);
 2033   Decl *ToTU = ImportedD->getTranslationUnitDecl();
 2053   Decl *FromTU = getTuDecl(Code, Lang_CXX);
 2070   Decl *FromTU = getTuDecl(Code, Lang_CXX);
 2083   Decl *ToTU = getToTuDecl(
 2094   Decl *FromTU = getTuDecl("void f() {}", Lang_CXX, "input0.cc");
 2116   Decl *FromTU0 = getTuDecl(Code, Lang_CXX);
 2120   Decl *FromTU1 = getTuDecl(Code, Lang_CXX, "input1.cc");
 2152     Decl *FromTU = getTuDecl(CodeWithDef, Lang_CXX, "input0.cc");
 2157     Decl *FromTU = getTuDecl(CodeWithoutDef, Lang_CXX, "input1.cc");
 2186   Decl *FromTU0 = getTuDecl(Code, Lang_CXX);
 2190   Decl *FromTU1 = getTuDecl(Code, Lang_CXX, "input1.cc");
 2243     Decl *FromTU0 = getTuDecl(CodeTU0, Lang_CXX, "input0.cc");
 2249     Decl *FromTU1 = getTuDecl(CodeTU1, Lang_CXX, "input1.cc");
 2329     Decl *FromTU = getTuDecl("namespace { void f() {} } void g0() { f(); }",
 2337     Decl *FromTU =
 2345   Decl *ToTU = ToAST->getASTContext().getTranslationUnitDecl();
 2351   Decl *FromTU = getTuDecl(
 2372   Decl *FromTU = getTuDecl(
 2394   Decl *FromTU = getTuDecl(
 2414   Decl *ToTU = ToAST->getASTContext().getTranslationUnitDecl();
 2430   Decl *FromTU1 = getTuDecl(Code, Lang_CXX, "input1.cc");
 2434   Decl *FromTU2 = getTuDecl(Code, Lang_CXX, "input2.cc");
 2452   Decl *FromTU1 = getTuDecl(Code, Lang_CXX, "input1.cc");
 2456   Decl *FromTU2 = getTuDecl(Code, Lang_CXX, "input2.cc");
 2472   Decl *FromTU = getTuDecl("void foo();", Lang_CXX);
 2490   Decl *FromTU = getTuDecl(Code, Lang_CXX);
 2507   Decl *FromTU = getTuDecl(
 2524   Decl *FromTU = getTuDecl("struct X { friend void f(); };"
 2531   Decl *ToTU = ToAST->getASTContext().getTranslationUnitDecl();
 2543   Decl *FromTU = getTuDecl("void f();"
 2549   Decl *ToTU = ToAST->getASTContext().getTranslationUnitDecl();
 2560   Decl *FromTU = getTuDecl("struct X { friend void f(){} };"
 2567   Decl *ToTU = ToAST->getASTContext().getTranslationUnitDecl();
 2579   Decl *FromTU = getTuDecl("struct X { friend void f(); };"
 2585   Decl *ToTU = ToAST->getASTContext().getTranslationUnitDecl();
 2596   Decl *FromTU = getTuDecl(
 2608   Decl *ToTU = ToAST->getASTContext().getTranslationUnitDecl();
 2625   Decl *FromTU = getTuDecl(
 2637   Decl *ToTU = ToAST->getASTContext().getTranslationUnitDecl();
 2655     Decl *FromTU =
 2662     Decl *FromTU = getTuDecl("void f();", Lang_CXX, "input1.cc");
 2667   Decl *ToTU = ToAST->getASTContext().getTranslationUnitDecl();
 2926   MatchVerifier<Decl> Verifier;
 2939   MatchVerifier<Decl> Verifier;
 2966   MatchVerifier<Decl> Verifier;
 2976   MatchVerifier<Decl> Verifier;
 3019     Decl *ToTU = getToTuDecl(Code, Lang_CXX11);
 3034     Decl *ImportedClass = nullptr;
 3036       Decl *FromTU = getTuDecl(Code, Lang_CXX11, "input1.cc");
 3101   Decl *ToR1;
 3103     Decl *FromTU = getTuDecl(
 3111   Decl *ToR2;
 3113     Decl *FromTU = getTuDecl(
 3125   Decl *ToR1;
 3127     Decl *FromTU = getTuDecl(
 3133   Decl *ToR2;
 3135     Decl *FromTU = getTuDecl(
 3145   Decl *ToF1;
 3147     Decl *FromTU = getTuDecl(
 3153   Decl *ToF2;
 3155     Decl *FromTU = getTuDecl(
 3165   Decl *ToF1;
 3167     Decl *FromTU = getTuDecl(
 3173   Decl *ToF2;
 3175     Decl *FromTU = getTuDecl(
 3185   Decl *ToM1;
 3187     Decl *FromTU = getTuDecl(
 3193   Decl *ToM2;
 3195     Decl *FromTU = getTuDecl(
 3205   Decl *ToM1;
 3207     Decl *FromTU = getTuDecl(
 3214   Decl *ToM2;
 3216     Decl *FromTU = getTuDecl(
 3228   Decl *FromTU = getTuDecl(
 3260   Decl *FromTU = getTuDecl(
 3305   Decl *ToTU = getToTuDecl(ClassTemplate +
 3318   Decl *FromTU = getTuDecl(ClassTemplate +
 3350   Decl *ToTU = getToTuDecl(ClassTemplate +
 3357   Decl *FromTU = getTuDecl(ClassTemplate +
 3389   Decl *ToTU = getToTuDecl(ClassTemplate +
 3400   Decl *FromTU = getTuDecl(ClassTemplate +
 3437   Decl *ToTU = getToTuDecl(ClassTemplate +
 3443   Decl *FromTU = getTuDecl(ClassTemplate +
 3481   Decl *ToTU = getToTuDecl(Code, Lang_CXX11);
 3482   Decl *FromTU = getTuDecl(Code, Lang_CXX11);
 3508   Decl *ToTU = getToTuDecl(Code, Lang_CXX11);
 3509   Decl *FromTU = getTuDecl(Code, Lang_CXX11);
 3538   Decl *ToTU = getToTuDecl(PrimaryTemplate + FullSpec, Lang_CXX11);
 3539   Decl *FromTU = getTuDecl(PrimaryTemplate + PartialSpec, Lang_CXX11);
 3556   Decl *TU = getTuDecl(
 3577   Decl *FromTU = getTuDecl(
 3607   Decl *ToTU = getToTuDecl(StructA, Lang_CXX);
 3608   Decl *FromTU = getTuDecl(std::string(StructA) + "const int A::a;", Lang_CXX,
 3638   Decl *ToTU = getToTuDecl(StructA, Lang_CXX);
 3639   Decl *FromTU = getTuDecl(std::string(StructA) + "const int A::a = 1 + 2;",
 3665   Decl *ToTU = getToTuDecl("struct A { struct X *Xp; };", Lang_C);
 3666   Decl *FromTU1 = getTuDecl("struct X {};", Lang_C, "input1.cc");
 3671   Decl *ImportedDef = Import(FromDef, Lang_C);
 3683   Decl *ToTU = getToTuDecl("struct A { struct X *Xp; };", Lang_CXX);
 3684   Decl *FromTU1 = getTuDecl("struct X {};", Lang_CXX, "input1.cc");
 3689   Decl *ImportedDef = Import(FromDef, Lang_CXX);
 3701   Decl *FromTU0 = getTuDecl("struct A { struct X *Xp; };", Lang_C, "input0.cc");
 3702   Decl *FromTU1 = getTuDecl("struct X {};", Lang_C, "input1.cc");
 3707   Decl *ImportedProto = Import(FromProto, Lang_C);
 3708   Decl *ImportedDef = Import(FromDef, Lang_C);
 3709   Decl *ToTU = ImportedDef->getTranslationUnitDecl();
 3726   Decl *FromTU = getTuDecl(
 3763   Decl *FromTu = getTuDecl(
 3780   Decl *FromTu = getTuDecl(
 3809     Decl *FromTU = getTuDecl("template<class T> class X;"
 3819     Decl *FromTU = getTuDecl("template<class T> class X;"
 3829   Decl *ToTU = ToAST->getASTContext().getTranslationUnitDecl();
 3837   Decl *FromTU0 = getTuDecl(
 3851   Decl *FromTU1 = getTuDecl(
 3865   Decl *From, *To;
 3876   Decl *ToTU = getToTuDecl(
 3889   Decl *FromTU = getTuDecl(
 3906   Decl *FromTU0 = getTuDecl(
 3920   Decl *FromTU1 = getTuDecl(
 3936   Decl *FromTU0 = getTuDecl(
 3951   Decl *FromTU1 = getTuDecl(
 3984   Decl *TU = getTuDecl(
 4012   Decl *TU = getTuDecl("extern int A; int A;", Lang_CXX);
 4050   Decl *FromTU = getTuDecl(
 4074   Decl *FromTU = getTuDecl(
 4097   Decl *FromTU = getTuDecl(
 4121   Decl *FromTU = getTuDecl(
 4131   auto *FromSpecD = FirstDeclMatcher<Decl>().match(FromTU, Spec);
 4133     auto *TU = FromTU;
 4134     auto *SpecD = FromSpecD;
 4148     auto *SpecD = FirstDeclMatcher<Decl>().match(TU, Spec);
 4162   Decl *FromTU = getTuDecl(
 4185     Decl *FromTU = getTuDecl(
 4198     Decl *FromTU = getTuDecl(
 4232   Decl *ToTU = getToTuDecl(Code, Lang_CXX11);
 4239   Decl *FromTU = getTuDecl(std::string(Code) +
 4262   Decl *FromTU = getTuDecl(Code, Lang_CXX);
 4283 static Decl *findInDeclListOfDC(DeclContext *DC, DeclarationName Name) {
 4284   for (Decl *D : DC->decls()) {
 4456   Decl *FromTU = getTuDecl(
 4790   Decl *FromTU = getTuDecl(
 4830   Decl *ToTU = getToTuDecl(
 4840   Decl *FromTU = getTuDecl(
 5019   Decl *FromTU = getTuDecl(
 5256   Decl *FromTU = getTuDecl(
 5276   Decl *FromTU = getTuDecl(
 5295   Decl *FromTU = getTuDecl(
 5386   Decl *FromTU = getTuDecl(
 5437     Decl *FromTU = getTuDecl(
 5461   Decl *FromTU = getTuDecl(
 5492   Decl *FromTU = getTuDecl(
 5514   Decl *FromTU = getTuDecl(
 5534   Decl *FromTU = getTuDecl(
 5556   Decl *FromTU = getTuDecl(
 5579   Decl *FromTU = getTuDecl(
tools/clang/unittests/AST/ASTImporterVisibilityTest.cpp
   28   BindableMatcher<Decl> operator()() { return functionDecl(hasName("f")); }
   32   BindableMatcher<Decl> operator()() { return varDecl(hasName("v")); }
   36   BindableMatcher<Decl> operator()() { return cxxRecordDecl(hasName("X")); }
   40   BindableMatcher<Decl> operator()() { return enumDecl(hasName("E")); }
   44   BindableMatcher<Decl> operator()() { return typedefNameDecl(hasName("T")); }
   48   BindableMatcher<Decl> operator()() {
   95   BindableMatcher<Decl> getPattern() const { return PatternFactory()(); }
  188   BindableMatcher<Decl> getPattern() const { return PatternFactory()(); }
tools/clang/unittests/AST/ASTTraverserTest.cpp
   30   void Visit(const Decl *D) { OS << D->getDeclKindName() << "Decl"; }
   59              const Decl *From = nullptr, const char *Label = nullptr) {
tools/clang/unittests/AST/ASTTypeTraitsTest.cpp
   25   return ASTNodeKind::getFromNodeKind<T>();
tools/clang/unittests/AST/DeclMatcher.h
   22   NodeType *Node = nullptr;
   26       Node = const_cast<NodeType *>(Result.Nodes.getNodeAs<NodeType>(""));
   32   NodeType *match(const Decl *D, const MatcherType &AMatcher) {
   32   NodeType *match(const Decl *D, const MatcherType &AMatcher) {
   64   unsigned match(const Decl *D, const MatcherType &AMatcher) {
tools/clang/unittests/AST/DeclPrinterTest.cpp
   35 void PrintDecl(raw_ostream &Out, const ASTContext *Context, const Decl *D,
   54     const Decl *D = Result.Nodes.getNodeAs<Decl>("id");
   54     const Decl *D = Result.Nodes.getNodeAs<Decl>("id");
tools/clang/unittests/AST/DeclTest.cpp
   83   SmallVector<Decl *, 1> Decls;
tools/clang/unittests/AST/MatchVerifier.h
   57   testing::AssertionResult match(const Decl *D, const MatcherType &AMatcher);
   62                       const NodeType &Node) {}
  136     const Decl *D, const MatcherType &AMatcher) {
  150   const NodeType *Node = Result.Nodes.getNodeAs<NodeType>("");
  150   const NodeType *Node = Result.Nodes.getNodeAs<NodeType>("");
tools/clang/unittests/AST/StructuralEquivalenceTest.cpp
   80   bool testStructuralMatch(Decl *D0, Decl *D1) {
   80   bool testStructuralMatch(Decl *D0, Decl *D1) {
   81     llvm::DenseSet<std::pair<Decl *, Decl *>> NonEquivalentDecls01;
   81     llvm::DenseSet<std::pair<Decl *, Decl *>> NonEquivalentDecls01;
   82     llvm::DenseSet<std::pair<Decl *, Decl *>> NonEquivalentDecls10;
   82     llvm::DenseSet<std::pair<Decl *, Decl *>> NonEquivalentDecls10;
   95   bool testStructuralMatch(std::tuple<Decl *, Decl *> t) {
   95   bool testStructuralMatch(std::tuple<Decl *, Decl *> t) {
 1277   llvm::DenseSet<std::pair<Decl *, Decl *>> NonEquivalentDecls;
 1277   llvm::DenseSet<std::pair<Decl *, Decl *>> NonEquivalentDecls;
tools/clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp
  258   auto VD = internal::Matcher<VarDecl>(Name).dynCastTo<Decl>();
  259   auto RD = internal::Matcher<RecordDecl>(Name).dynCastTo<Decl>();
tools/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp
 1555   bool verify(const BoundNodes &Nodes, ASTContext &Context, const Decl *Node) {
tools/clang/unittests/ASTMatchers/ASTMatchersTest.h
  421     if (Nodes->getNodeAs<T>(Id)) {
tools/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
 2465   VerifyMatchOnNode(StringRef Id, const internal::Matcher<T> &InnerMatcher,
 2473     const T *Node = Nodes->getNodeAs<T>(Id);
 2473     const T *Node = Nodes->getNodeAs<T>(Id);
 2474     return selectFirst<T>(InnerId, match(InnerMatcher, *Node, *Context)) !=
 2479   internal::Matcher<T> InnerMatcher;
tools/clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp
  215   Matcher<Decl> M = VarDecl->unconditionalConvertTo<Decl>();
  215   Matcher<Decl> M = VarDecl->unconditionalConvertTo<Decl>();
  224   M = HasParameter->unconditionalConvertTo<Decl>();
  236   M = HasParameterWithNamedValues->unconditionalConvertTo<Decl>();
  387     auto M = TopLevelLetBinding->unconditionalConvertTo<Decl>();
  403     auto M = NestedLetBinding->unconditionalConvertTo<Decl>();
tools/clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp
  145   Matcher<Decl> Value = constructMatcher(
  147       .getTypedMatcher<Decl>();
  158   Matcher<Decl> HasInitializerSimple = constructMatcher(
  160       .getTypedMatcher<Decl>();
  161   Matcher<Decl> HasInitializerComplex = constructMatcher(
  164       .getTypedMatcher<Decl>();
  178   Matcher<Decl> HasParameter =
  209   Matcher<Decl> DeclDecl = declaratorDecl(hasTypeLoc(
  231   Matcher<Decl> Var =
  232       constructMatcher("varDecl", IsDefinition).getTypedMatcher<Decl>();
  233   Matcher<Decl> Class =
  234       constructMatcher("recordDecl", IsDefinition).getTypedMatcher<Decl>();
  235   Matcher<Decl> Func =
  236       constructMatcher("functionDecl", IsDefinition).getTypedMatcher<Decl>();
  244   Matcher<Decl> Anything = constructMatcher("anything").getTypedMatcher<Decl>();
  244   Matcher<Decl> Anything = constructMatcher("anything").getTypedMatcher<Decl>();
  245   Matcher<Decl> RecordDecl = constructMatcher(
  247       VariantMatcher::SingleMatcher(Anything)).getTypedMatcher<Decl>();
  271   Matcher<Decl> HasTemplateArgument = constructMatcher(
  277       .getTypedMatcher<Decl>();
  301   Matcher<Decl> CtorDecl = constructMatcher(
  307       .getTypedMatcher<Decl>();
  314   Matcher<Decl> D = constructMatcher(
  320       .getTypedMatcher<Decl>();
  345   Matcher<Decl> D = constructMatcher(
  351       .getTypedMatcher<Decl>();
  364       .getTypedMatcher<Decl>();
  378           .getTypedMatcher<Decl>());
  386           .getTypedMatcher<Decl>();
  501   Matcher<Decl> Value = constructMatcher(
  503       .getTypedMatcher<Decl>();
tools/clang/unittests/CodeGen/CodeGenExternalTest.cpp
   54   std::vector<Decl*> toplevel_decls;
   80   bool shouldSkipFunctionBody(Decl *D) override;
  158 bool MyASTConsumer::shouldSkipFunctionBody(Decl *D) {
tools/clang/unittests/CodeGen/IncrementalProcessingTest.cpp
   90   for (Decl *D : S.WeakTopLevelDecls())
tools/clang/unittests/CrossTU/CrossTranslationUnitTest.cpp
   33       for (const Decl *D : TU->decls()) {
tools/clang/unittests/Index/IndexTests.cpp
   77   bool handleDeclOccurence(const Decl *D, SymbolRoleSet Roles,
  131         std::vector<Decl *> DeclsToIndex(
tools/clang/unittests/StaticAnalyzer/CallDescriptionTest.cpp
   53   void performTest(const Decl *D) {
   80     for (const auto *D : DG)
tools/clang/unittests/StaticAnalyzer/RegisterCustomCheckersTest.cpp
   73   void checkASTCodeBody(const Decl *D, AnalysisManager &Mgr,
tools/clang/unittests/StaticAnalyzer/Reusables.h
   22 const T *findNode(const Decl *Where, MatcherT What) {
   35 const T *findDeclByName(const Decl *Where, StringRef Name) {
tools/clang/unittests/StaticAnalyzer/StoreTest.cpp
   21   void performTest(const Decl *D) {
   84     for (const auto *D : DG)
tools/clang/unittests/StaticAnalyzer/SymbolReaperTest.cpp
   19   void performTest(const Decl *D) {
   47     for (const auto *D : DG)
tools/clang/unittests/Tooling/ASTSelectionTest.cpp
  118           typename std::enable_if<std::is_base_of<Decl, T>::value, T>::type
  120   checkNodeImpl(isa<T>(DeclNode.Node.get<Decl>()), DeclNode, SelectionKind,
tools/clang/unittests/Tooling/LexicallyOrderedRecursiveASTVisitorTest.cpp
   28   bool TraverseDecl(Decl *D) {
   44   llvm::SmallVector<Decl *, 8> TraversalStack;
   76   for (const Decl *D : TraversalStack) {
tools/clang/unittests/Tooling/LookupTest.cpp
   17   SmallVector<Decl *, 4> DeclStack;
   31   bool TraverseDecl(Decl *D) {
tools/clang/unittests/Tooling/QualTypeNamesTest.cpp
   20   bool traverseDecl(Decl *D) {
tools/clang/unittests/Tooling/RecursiveASTVisitorTests/LambdaExpr.cpp
   31   bool VisitDecl(Decl *D) {
   45   std::stack<Decl *> PendingClasses;
tools/clang/unittests/Tooling/ToolingTest.cpp
   90   for (std::vector<Decl *>::iterator i = AST->top_level_begin(),
  242   bool shouldSkipFunctionBody(Decl *D) override {
tools/lldb/include/lldb/Symbol/ClangASTContext.h
  119   bool GetCompleteDecl(clang::Decl *decl) {
  123   static void DumpDeclHiearchy(clang::Decl *decl);
  127   static bool DeclsAreEquivalent(clang::Decl *lhs_decl, clang::Decl *rhs_decl);
  127   static bool DeclsAreEquivalent(clang::Decl *lhs_decl, clang::Decl *rhs_decl);
  129   static bool GetCompleteDecl(clang::ASTContext *ast, clang::Decl *decl);
  188   static clang::Decl *CopyDecl(clang::ASTContext *dest_context,
  190                                clang::Decl *source_decl);
tools/lldb/include/lldb/Symbol/ClangASTImporter.h
  111   clang::Decl *CopyDecl(clang::ASTContext *dst_ctx, clang::ASTContext *src_ctx,
  112                         clang::Decl *decl);
  118   clang::Decl *DeportDecl(clang::ASTContext *dst_ctx,
  119                           clang::ASTContext *src_ctx, clang::Decl *decl);
  138   void CompleteDecl(clang::Decl *decl);
  150   bool ResolveDeclOrigin(const clang::Decl *decl, clang::Decl **original_decl,
  150   bool ResolveDeclOrigin(const clang::Decl *decl, clang::Decl **original_decl,
  163   void SetDeclOrigin(const clang::Decl *decl, clang::Decl *original_decl);
  163   void SetDeclOrigin(const clang::Decl *decl, clang::Decl *original_decl);
  165   ClangASTMetadata *GetDeclMetadata(const clang::Decl *decl);
  217     DeclOrigin(clang::ASTContext *_ctx, clang::Decl *_decl)
  233     clang::Decl *decl;
  236   typedef std::map<const clang::Decl *, DeclOrigin> OriginMap;
  243     virtual void NewDeclImported(clang::Decl *from, clang::Decl *to) = 0;
  243     virtual void NewDeclImported(clang::Decl *from, clang::Decl *to) = 0;
  296     void ImportDefinitionTo(clang::Decl *to, clang::Decl *from);
  296     void ImportDefinitionTo(clang::Decl *to, clang::Decl *from);
  298     void Imported(clang::Decl *from, clang::Decl *to) override;
  298     void Imported(clang::Decl *from, clang::Decl *to) override;
  300     clang::Decl *GetOriginalDecl(clang::Decl *To) override;
  300     clang::Decl *GetOriginalDecl(clang::Decl *To) override;
  309     llvm::Expected<clang::Decl *> ImportImpl(clang::Decl *From) override;
  309     llvm::Expected<clang::Decl *> ImportImpl(clang::Decl *From) override;
  316     std::set<clang::Decl *> m_decls_to_ignore;
  388   DeclOrigin GetDeclOrigin(const clang::Decl *decl);
tools/lldb/include/lldb/Symbol/ClangExternalASTSourceCallbacks.h
   55   clang::Decl *GetExternalDecl(uint32_t ID) override {
   85       llvm::function_ref<bool(clang::Decl::Kind)> IsKindWeWant,
   86       llvm::SmallVectorImpl<clang::Decl *> &Result) override;
tools/lldb/include/lldb/Symbol/CxxModuleHandler.h
   46   llvm::Optional<clang::Decl *> tryInstantiateStdTemplate(clang::Decl *d);
   46   llvm::Optional<clang::Decl *> tryInstantiateStdTemplate(clang::Decl *d);
   56   llvm::Optional<clang::Decl *> Import(clang::Decl *d);
   56   llvm::Optional<clang::Decl *> Import(clang::Decl *d);
tools/lldb/source/Plugins/ExpressionParser/Clang/ASTDumper.cpp
   20 ASTDumper::ASTDumper(clang::Decl *decl) {
   50   if (clang::Decl *decl = llvm::dyn_cast<clang::Decl>(decl_ctx)) {
   50   if (clang::Decl *decl = llvm::dyn_cast<clang::Decl>(decl_ctx)) {
tools/lldb/source/Plugins/ExpressionParser/Clang/ASTDumper.h
   22   ASTDumper(clang::Decl *decl);
tools/lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.cpp
   55 void ASTResultSynthesizer::TransformTopLevelDecl(Decl *D) {
  104     Decl *decl = *decl_iterator;
  455     Decl *D_scratch = m_target.GetClangASTImporter()->DeportDecl(
tools/lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.h
  104   void TransformTopLevelDecl(clang::Decl *D);
tools/lldb/source/Plugins/ExpressionParser/Clang/ASTStructExtractor.cpp
   72     for (Decl *candidate_decl : decl_group) {
  111 void ASTStructExtractor::ExtractFromTopLevelDecl(Decl *D) {
  136     Decl *decl = *decl_iterator;
tools/lldb/source/Plugins/ExpressionParser/Clang/ASTStructExtractor.h
  113   void ExtractFromTopLevelDecl(clang::Decl *D);
tools/lldb/source/Plugins/ExpressionParser/Clang/ASTUtils.h
   31   clang::Decl *GetExternalDecl(uint32_t ID) override {
   79   ExtKind hasExternalDefinitions(const clang::Decl *D) override {
   85       llvm::function_ref<bool(clang::Decl::Kind)> IsKindWeWant,
   86       llvm::SmallVectorImpl<clang::Decl *> &Result) override {
   92                       llvm::SmallVectorImpl<clang::Decl *> &Decls) override {
   96   void CompleteRedeclChain(const clang::Decl *D) override {
  223   bool shouldSkipFunctionBody(clang::Decl *D) override {
  267   clang::Decl *GetExternalDecl(uint32_t ID) override {
  269       if (clang::Decl *Result = Sources[i]->GetExternalDecl(ID))
  274   void CompleteRedeclChain(const clang::Decl *D) override {
  320   ExtKind hasExternalDefinitions(const clang::Decl *D) override {
  344       llvm::function_ref<bool(clang::Decl::Kind)> IsKindWeWant,
  345       llvm::SmallVectorImpl<clang::Decl *> &Result) override {
  355                       llvm::SmallVectorImpl<clang::Decl *> &Decls) override {
  406   bool DeclIsFromPCHWithObjectFile(const clang::Decl *D) override {
tools/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
   41   ScopedLexicalDeclEraser(std::set<const clang::Decl *> &decls,
   42                           const clang::Decl *decl)
   48   std::set<const clang::Decl *> &m_active_lexical_decls;
   49   const clang::Decl *m_decl;
  447   Decl *original_decl = nullptr;
  519     llvm::function_ref<bool(Decl::Kind)> predicate,
  520     llvm::SmallVectorImpl<Decl *> &decls) {
  541   const Decl *context_decl = dyn_cast<Decl>(decl_context);
  541   const Decl *context_decl = dyn_cast<Decl>(decl_context);
  577   Decl *original_decl = nullptr;
  621     Decl *decl = *iter;
  640       Decl *copied_decl = CopyDecl(decl);
  940             clang::Decl *copied_decl = CopyDecl(decl_from_modules);
  997         clang::Decl *copied_decl = CopyDecl(decls[0]);
 1019   TaggedASTDecl(D *_decl) : decl(_decl) {}
 1022   D *operator->() const { return decl; }
 1023   D *decl;
 1034 template <class D> class DeclFromParser : public TaggedASTDecl<D> {
 1037   DeclFromParser(D *_decl) : TaggedASTDecl<D>(_decl) {}
 1039   DeclFromUser<D> GetOrigin(ClangASTSource &source);
 1042 template <class D> class DeclFromUser : public TaggedASTDecl<D> {
 1045   DeclFromUser(D *_decl) : TaggedASTDecl<D>(_decl) {}
 1047   DeclFromParser<D> Import(ClangASTSource &source);
 1128     Decl *copied_decl = CopyDecl(result_method);
 1183     Decl *original_decl = nullptr;
 1335         Decl *copied_decl = CopyDecl(method_decl);
 1969   Decl *copied_decl = CopyDecl(src_namespace_decl);
 2006 clang::Decl *ClangASTSource::CopyDecl(Decl *src_decl) {
 2006 clang::Decl *ClangASTSource::CopyDecl(Decl *src_decl) {
 2016     if (llvm::Expected<Decl *> decl_or_error =
 2032 bool ClangASTSource::ResolveDeclOrigin(const clang::Decl *decl,
 2033                                        clang::Decl **original_decl,
tools/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.h
   48   clang::Decl *GetExternalDecl(uint32_t) override { return nullptr; }
  100       llvm::function_ref<bool(clang::Decl::Kind)> IsKindWeWant,
  101       llvm::SmallVectorImpl<clang::Decl *> &Decls) override;
  224         llvm::function_ref<bool(clang::Decl::Kind)> IsKindWeWant,
  225         llvm::SmallVectorImpl<clang::Decl *> &Decls) override {
  360   clang::Decl *CopyDecl(clang::Decl *src_decl);
  360   clang::Decl *CopyDecl(clang::Decl *src_decl);
  393   bool ResolveDeclOrigin(const clang::Decl *decl, clang::Decl **original_decl,
  393   bool ResolveDeclOrigin(const clang::Decl *decl, clang::Decl **original_decl,
  423   std::set<const clang::Decl *> m_active_lexical_decls;
tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
  828       Decl *parser_persistent_decl = CopyDecl(persistent_decl);
 1114                 clang::Decl::castToDeclContext(namespace_decl);
 1436             clang::Decl *copied_decl = CopyDecl(decl_from_modules);
 1464             clang::Decl *copied_decl = CopyDecl(decl_from_modules);
tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
   77 static bool DeclKindIsCXXClass(clang::Decl::Kind decl_kind) {
   79   case clang::Decl::CXXRecord:
   80   case clang::Decl::ClassTemplateSpecialization:
  783     const clang::Decl::Kind containing_decl_kind =
 1507       const clang::Decl::Kind containing_decl_kind = decl_ctx->getDeclKind();
 2201   clang::Decl *clang_decl = GetClangDeclForDIE(die);
 3310 clang::Decl *DWARFASTParserClang::GetClangDeclForDIE(const DWARFDIE &die) {
 3330     clang::Decl *decl = GetClangDeclForDIE(spec_die);
 3338     clang::Decl *decl = GetClangDeclForDIE(abstract_origin_die);
 3344   clang::Decl *decl = nullptr;
tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h
   81   typedef llvm::DenseMap<const DWARFDebugInfoEntry *, clang::Decl *>
   83   typedef llvm::DenseMap<const clang::Decl *, DIEPointerSet> DeclToDIEMap;
  136   clang::Decl *GetClangDeclForDIE(const DWARFDIE &die);
  152   void LinkDeclToDIE(clang::Decl *decl, const DWARFDIE &die);
tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp
  434 clang::Decl *PdbAstBuilder::GetOrCreateSymbolForId(PdbCompilandSymId id) {
  439     clang::Decl *scope_decl = clang::Decl::castFromDeclContext(scope);
  439     clang::Decl *scope_decl = clang::Decl::castFromDeclContext(scope);
  462   if (clang::Decl *result = TryGetDecl(uid))
  465   clang::Decl *result = nullptr;
  493   clang::Decl *decl = FromCompilerDecl(option.getValue());
  497   return clang::Decl::castToDeclContext(decl);
  799 clang::Decl *PdbAstBuilder::TryGetDecl(PdbSymUid uid) const {
  815   if (clang::Decl *decl = TryGetDecl(block_id))
  850   if (clang::Decl *decl = TryGetDecl(var_id))
  860   if (clang::Decl *decl = TryGetDecl(var_id))
  870   if (clang::Decl *decl = TryGetDecl(id))
  984   if (clang::Decl *decl = TryGetDecl(func_id))
 1242 static CVSymbolArray skipFunctionParameters(clang::Decl &decl,
 1297   clang::Decl *decl = clang::Decl::castFromDeclContext(&context);
 1297   clang::Decl *decl = clang::Decl::castFromDeclContext(&context);
 1339 CompilerDecl PdbAstBuilder::ToCompilerDecl(clang::Decl &decl) {
 1352 clang::Decl * PdbAstBuilder::FromCompilerDecl(CompilerDecl decl) {
tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.h
   77   CompilerDecl ToCompilerDecl(clang::Decl &decl);
   80   clang::Decl *FromCompilerDecl(CompilerDecl decl);
   89   clang::Decl *TryGetDecl(PdbSymUid uid) const;
  110   clang::Decl *GetOrCreateSymbolForId(PdbCompilandSymId id);
  137   llvm::DenseMap<clang::Decl *, DeclStatus> m_decl_to_status;
  138   llvm::DenseMap<lldb::user_id_t, clang::Decl *> m_uid_to_decl;
tools/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp
  815 clang::Decl *
  843       clang::Decl *decl = m_uid_to_decl.lookup(sym_id);
  902     clang::Decl *decl =
tools/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.h
   51   clang::Decl *GetDeclForSymbol(const llvm::pdb::PDBSymbol &symbol);
   70   typedef llvm::DenseMap<lldb::user_id_t, clang::Decl *> UidToDeclMap;
tools/lldb/source/Symbol/ClangASTContext.cpp
 1270 clang::Decl *ClangASTContext::CopyDecl(ASTContext *dst_ast, ASTContext *src_ast,
 1271                                        clang::Decl *source_decl) {
 1276   if (llvm::Expected<clang::Decl *> ret_or_error =
 1311   clang::Decl *decl = static_cast<clang::Decl *>(opaque_decl);
 2336 void ClangASTContext::DumpDeclHiearchy(clang::Decl *decl) {
 2358 bool ClangASTContext::DeclsAreEquivalent(clang::Decl *lhs_decl,
 2359                                          clang::Decl *rhs_decl) {
 2362     const clang::Decl::Kind lhs_decl_kind = lhs_decl->getKind();
 2363     const clang::Decl::Kind rhs_decl_kind = rhs_decl->getKind();
 2373             const clang::Decl::Kind lhs_decl_ctx_kind =
 2375             const clang::Decl::Kind rhs_decl_ctx_kind =
 2411           case clang::Decl::TranslationUnit:
 2442                                       clang::Decl *decl) {
 8968   Decl *tu = Decl::castFromDeclContext(GetTranslationUnitDecl());
 8968   Decl *tu = Decl::castFromDeclContext(GetTranslationUnitDecl());
 9993         for (clang::Decl *child : it->second->decls()) {
10007               clang::Decl *target = usd->getTargetDecl();
10108         for (clang::Decl *child : it->second->decls()) {
10122                 clang::Decl *target = usd->getTargetDecl();
tools/lldb/source/Symbol/ClangASTImporter.cpp
  107 clang::Decl *ClangASTImporter::CopyDecl(clang::ASTContext *dst_ast,
  109                                         clang::Decl *decl) {
  119   llvm::Expected<clang::Decl *> result = delegate_sp->Import(decl);
  154   std::map<clang::Decl *, Backup> m_backups;
  156   void OverrideOne(clang::Decl *decl) {
  168       clang::Decl *decl, clang::DeclContext *base,
  181   clang::Decl *GetEscapedChild(clang::Decl *decl,
  181   clang::Decl *GetEscapedChild(clang::Decl *decl,
  186       if (!ChainPassesThrough(decl, base, &clang::Decl::getDeclContext,
  188           !ChainPassesThrough(decl, base, &clang::Decl::getLexicalDeclContext,
  202       for (clang::Decl *decl : context->decls()) {
  203         if (clang::Decl *escaped_child = GetEscapedChild(decl)) {
  212   void Override(clang::Decl *decl) {
  213     if (clang::Decl *escaped_child = GetEscapedChild(decl)) {
  231   void OverrideAllDeclsFromContainingFunction(clang::Decl *decl) {
  238         for (clang::Decl *child_decl : decl_context->decls()) {
  246     for (const std::pair<clang::Decl *, Backup> &backup : m_backups) {
  296       Decl *original_decl = to_context_md->m_origins[decl].decl;
  323   void NewDeclImported(clang::Decl *from, clang::Decl *to) override {
  323   void NewDeclImported(clang::Decl *from, clang::Decl *to) override {
  371 clang::Decl *ClangASTImporter::DeportDecl(clang::ASTContext *dst_ctx,
  373                                           clang::Decl *decl) {
  386   clang::Decl *result;
  604 void ClangASTImporter::CompleteDecl(clang::Decl *decl) {
  722     for (Decl *origin_child_decl : origin_tag_decl->decls()) {
  723       llvm::Expected<Decl *> imported_or_err =
  753       for (Decl *origin_child_decl : origin_interface_decl->decls()) {
  754         llvm::Expected<Decl *> imported_or_err =
  801 ClangASTMetadata *ClangASTImporter::GetDeclMetadata(const clang::Decl *decl) {
  811 ClangASTImporter::GetDeclOrigin(const clang::Decl *decl) {
  824 void ClangASTImporter::SetDeclOrigin(const clang::Decl *decl,
  825                                      clang::Decl *original_decl) {
  924 llvm::Expected<Decl *>
  925 ClangASTImporter::ASTImporterDelegate::ImportImpl(Decl *From) {
  927     llvm::Optional<Decl *> D = m_std_handler->Import(From);
  943     clang::Decl *to, clang::Decl *from) {
  943     clang::Decl *to, clang::Decl *from) {
 1014       llvm::Expected<Decl *> imported_from_superclass_decl =
 1038 void ClangASTImporter::ASTImporterDelegate::Imported(clang::Decl *from,
 1039                                                      clang::Decl *to) {
 1197 clang::Decl *
 1198 ClangASTImporter::ASTImporterDelegate::GetOriginalDecl(clang::Decl *To) {
tools/lldb/source/Symbol/ClangExternalASTSourceCallbacks.cpp
   91     llvm::function_ref<bool(clang::Decl::Kind)> IsKindWeWant,
   92     llvm::SmallVectorImpl<clang::Decl *> &decls) {
tools/lldb/source/Symbol/CxxModuleHandler.cpp
  171 T *createDecl(ASTImporter &importer, Decl *from_d, Args &&... args) {
  177 llvm::Optional<Decl *> CxxModuleHandler::tryInstantiateStdTemplate(Decl *d) {
  177 llvm::Optional<Decl *> CxxModuleHandler::tryInstantiateStdTemplate(Decl *d) {
  284 llvm::Optional<Decl *> CxxModuleHandler::Import(Decl *d) {
  284 llvm::Optional<Decl *> CxxModuleHandler::Import(Decl *d) {
usr/include/c++/7.4.0/type_traits
  215     : public __is_void_helper<typename remove_cv<_Tp>::type>::type
  381     : public __is_pointer_helper<typename remove_cv<_Tp>::type>::type
  581     : public __or_<is_lvalue_reference<_Tp>,
  582                    is_rvalue_reference<_Tp>>::type
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  602                           is_void<_Tp>>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
 1554     { typedef _Tp     type; };
 1558     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1580     { typedef _Tp const     type; };
 1629     { typedef _Tp   type; };
 1983     { typedef _Up     type; };
 1999     { typedef typename remove_reference<_Tp>::type*     type; };
 2003     : public __add_pointer_helper<_Tp>
utils/unittest/googletest/include/gtest/gtest-message.h
  150   inline Message& operator <<(T* const& pointer) {  // NOLINT
utils/unittest/googletest/include/gtest/gtest-printers.h
  407                     T* p, ::std::ostream* os) {
  416     if (IsTrue(ImplicitlyConvertible<T*, const void*>::value)) {