|
reference, declaration → definition
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)) {