Lines Matching refs:D
34 static void dumpPreviousDeclImpl(raw_ostream &OS, const Mergeable<T> *D) { in dumpPreviousDeclImpl() argument
35 const T *First = D->getFirstDecl(); in dumpPreviousDeclImpl()
36 if (First != D) in dumpPreviousDeclImpl()
41 static void dumpPreviousDeclImpl(raw_ostream &OS, const Redeclarable<T> *D) { in dumpPreviousDeclImpl() argument
42 const T *Prev = D->getPreviousDecl(); in dumpPreviousDeclImpl()
49 static void dumpPreviousDecl(raw_ostream &OS, const Decl *D) { in dumpPreviousDecl() argument
50 switch (D->getKind()) { in dumpPreviousDecl()
53 return dumpPreviousDeclImpl(OS, cast<DERIVED##Decl>(D)); in dumpPreviousDecl()
242 void TextNodeDumper::Visit(const Decl *D) { in Visit() argument
243 if (!D) { in Visit()
251 OS << D->getDeclKindName() << "Decl"; in Visit()
253 dumpPointer(D); in Visit()
254 if (D->getLexicalDeclContext() != D->getDeclContext()) in Visit()
255 OS << " parent " << cast<Decl>(D->getDeclContext()); in Visit()
256 dumpPreviousDecl(OS, D); in Visit()
257 dumpSourceRange(D->getSourceRange()); in Visit()
259 dumpLocation(D->getLocation()); in Visit()
260 if (D->isFromASTFile()) in Visit()
262 if (Module *M = D->getOwningModule()) in Visit()
264 if (auto *ND = dyn_cast<NamedDecl>(D)) in Visit()
265 for (Module *M : D->getASTContext().getModulesWithMergedDefinition( in Visit()
268 if (const NamedDecl *ND = dyn_cast<NamedDecl>(D)) in Visit()
271 if (D->isImplicit()) in Visit()
274 if (D->isUsed()) in Visit()
276 else if (D->isThisDeclarationReferenced()) in Visit()
279 if (D->isInvalidDecl()) in Visit()
281 if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) { in Visit()
290 if (!isa<FunctionDecl>(*D)) { in Visit()
291 const auto *MD = dyn_cast<ObjCMethodDecl>(D); in Visit()
293 const auto *DC = dyn_cast<DeclContext>(D); in Visit()
301 ConstDeclVisitor<TextNodeDumper>::Visit(D); in Visit()
682 void TextNodeDumper::dumpBareDeclRef(const Decl *D) { in dumpBareDeclRef() argument
683 if (!D) { in dumpBareDeclRef()
691 OS << D->getDeclKindName(); in dumpBareDeclRef()
693 dumpPointer(D); in dumpBareDeclRef()
695 if (const NamedDecl *ND = dyn_cast<NamedDecl>(D)) { in dumpBareDeclRef()
700 if (const ValueDecl *VD = dyn_cast<ValueDecl>(D)) in dumpBareDeclRef()
735 void TextNodeDumper::dumpDeclRef(const Decl *D, StringRef Label) { in dumpDeclRef() argument
736 if (!D) in dumpDeclRef()
742 dumpBareDeclRef(D); in dumpDeclRef()
1613 void TextNodeDumper::VisitLabelDecl(const LabelDecl *D) { dumpName(D); } in VisitLabelDecl() argument
1615 void TextNodeDumper::VisitTypedefDecl(const TypedefDecl *D) { in VisitTypedefDecl() argument
1616 dumpName(D); in VisitTypedefDecl()
1617 dumpType(D->getUnderlyingType()); in VisitTypedefDecl()
1618 if (D->isModulePrivate()) in VisitTypedefDecl()
1622 void TextNodeDumper::VisitEnumDecl(const EnumDecl *D) { in VisitEnumDecl() argument
1623 if (D->isScoped()) { in VisitEnumDecl()
1624 if (D->isScopedUsingClassTag()) in VisitEnumDecl()
1629 dumpName(D); in VisitEnumDecl()
1630 if (D->isModulePrivate()) in VisitEnumDecl()
1632 if (D->isFixed()) in VisitEnumDecl()
1633 dumpType(D->getIntegerType()); in VisitEnumDecl()
1636 void TextNodeDumper::VisitRecordDecl(const RecordDecl *D) { in VisitRecordDecl() argument
1637 OS << ' ' << D->getKindName(); in VisitRecordDecl()
1638 dumpName(D); in VisitRecordDecl()
1639 if (D->isModulePrivate()) in VisitRecordDecl()
1641 if (D->isCompleteDefinition()) in VisitRecordDecl()
1645 void TextNodeDumper::VisitEnumConstantDecl(const EnumConstantDecl *D) { in VisitEnumConstantDecl() argument
1646 dumpName(D); in VisitEnumConstantDecl()
1647 dumpType(D->getType()); in VisitEnumConstantDecl()
1650 void TextNodeDumper::VisitIndirectFieldDecl(const IndirectFieldDecl *D) { in VisitIndirectFieldDecl() argument
1651 dumpName(D); in VisitIndirectFieldDecl()
1652 dumpType(D->getType()); in VisitIndirectFieldDecl()
1654 for (const auto *Child : D->chain()) in VisitIndirectFieldDecl()
1658 void TextNodeDumper::VisitFunctionDecl(const FunctionDecl *D) { in VisitFunctionDecl() argument
1659 dumpName(D); in VisitFunctionDecl()
1660 dumpType(D->getType()); in VisitFunctionDecl()
1662 StorageClass SC = D->getStorageClass(); in VisitFunctionDecl()
1665 if (D->isInlineSpecified()) in VisitFunctionDecl()
1667 if (D->isVirtualAsWritten()) in VisitFunctionDecl()
1669 if (D->isModulePrivate()) in VisitFunctionDecl()
1672 if (D->isPure()) in VisitFunctionDecl()
1674 if (D->isDefaulted()) { in VisitFunctionDecl()
1676 if (D->isDeleted()) in VisitFunctionDecl()
1679 if (D->isDeletedAsWritten()) in VisitFunctionDecl()
1681 if (D->isTrivial()) in VisitFunctionDecl()
1684 if (D->isIneligibleOrNotSelected()) in VisitFunctionDecl()
1685 OS << (isa<CXXDestructorDecl>(D) ? " not_selected" : " ineligible"); in VisitFunctionDecl()
1687 if (const auto *FPT = D->getType()->getAs<FunctionProtoType>()) { in VisitFunctionDecl()
1701 if (const auto *MD = dyn_cast<CXXMethodDecl>(D)) { in VisitFunctionDecl()
1703 auto dumpOverride = [=](const CXXMethodDecl *D) { in VisitFunctionDecl() argument
1704 SplitQualType T_split = D->getType().split(); in VisitFunctionDecl()
1705 OS << D << " " << D->getParent()->getName() << "::" << D->getDeclName() in VisitFunctionDecl()
1723 if (!D->isInlineSpecified() && D->isInlined()) { in VisitFunctionDecl()
1730 if (!D->param_empty() && !D->param_begin()) in VisitFunctionDecl()
1731 OS << " <<<NULL params x " << D->getNumParams() << ">>>"; in VisitFunctionDecl()
1735 const LifetimeExtendedTemporaryDecl *D) { in VisitLifetimeExtendedTemporaryDecl() argument
1737 dumpBareDeclRef(D->getExtendingDecl()); in VisitLifetimeExtendedTemporaryDecl()
1741 OS << D->getManglingNumber(); in VisitLifetimeExtendedTemporaryDecl()
1745 void TextNodeDumper::VisitFieldDecl(const FieldDecl *D) { in VisitFieldDecl() argument
1746 dumpName(D); in VisitFieldDecl()
1747 dumpType(D->getType()); in VisitFieldDecl()
1748 if (D->isMutable()) in VisitFieldDecl()
1750 if (D->isModulePrivate()) in VisitFieldDecl()
1754 void TextNodeDumper::VisitVarDecl(const VarDecl *D) { in VisitVarDecl() argument
1755 dumpName(D); in VisitVarDecl()
1756 dumpType(D->getType()); in VisitVarDecl()
1757 StorageClass SC = D->getStorageClass(); in VisitVarDecl()
1760 switch (D->getTLSKind()) { in VisitVarDecl()
1770 if (D->isModulePrivate()) in VisitVarDecl()
1772 if (D->isNRVOVariable()) in VisitVarDecl()
1774 if (D->isInline()) in VisitVarDecl()
1776 if (D->isConstexpr()) in VisitVarDecl()
1778 if (D->hasInit()) { in VisitVarDecl()
1779 switch (D->getInitStyle()) { in VisitVarDecl()
1791 if (D->needsDestruction(D->getASTContext())) in VisitVarDecl()
1793 if (D->isParameterPack()) in VisitVarDecl()
1796 if (D->hasInit()) { in VisitVarDecl()
1797 const Expr *E = D->getInit(); in VisitVarDecl()
1799 if (E && !E->isValueDependent() && D->isConstexpr()) { in VisitVarDecl()
1800 const APValue *Value = D->evaluateValue(); in VisitVarDecl()
1807 void TextNodeDumper::VisitBindingDecl(const BindingDecl *D) { in VisitBindingDecl() argument
1808 dumpName(D); in VisitBindingDecl()
1809 dumpType(D->getType()); in VisitBindingDecl()
1812 void TextNodeDumper::VisitCapturedDecl(const CapturedDecl *D) { in VisitCapturedDecl() argument
1813 if (D->isNothrow()) in VisitCapturedDecl()
1817 void TextNodeDumper::VisitImportDecl(const ImportDecl *D) { in VisitImportDecl() argument
1818 OS << ' ' << D->getImportedModule()->getFullModuleName(); in VisitImportDecl()
1821 D->getASTContext().getModuleInitializers(D->getImportedModule())) in VisitImportDecl()
1825 void TextNodeDumper::VisitPragmaCommentDecl(const PragmaCommentDecl *D) { in VisitPragmaCommentDecl() argument
1827 switch (D->getCommentKind()) { in VisitPragmaCommentDecl()
1846 StringRef Arg = D->getArg(); in VisitPragmaCommentDecl()
1852 const PragmaDetectMismatchDecl *D) { in VisitPragmaDetectMismatchDecl() argument
1853 OS << " \"" << D->getName() << "\" \"" << D->getValue() << "\""; in VisitPragmaDetectMismatchDecl()
1857 const OMPExecutableDirective *D) { in VisitOMPExecutableDirective() argument
1858 if (D->isStandaloneDirective()) in VisitOMPExecutableDirective()
1863 const OMPDeclareReductionDecl *D) { in VisitOMPDeclareReductionDecl() argument
1864 dumpName(D); in VisitOMPDeclareReductionDecl()
1865 dumpType(D->getType()); in VisitOMPDeclareReductionDecl()
1867 dumpPointer(D->getCombiner()); in VisitOMPDeclareReductionDecl()
1868 if (const auto *Initializer = D->getInitializer()) { in VisitOMPDeclareReductionDecl()
1871 switch (D->getInitializerKind()) { in VisitOMPDeclareReductionDecl()
1884 void TextNodeDumper::VisitOMPRequiresDecl(const OMPRequiresDecl *D) { in VisitOMPRequiresDecl() argument
1885 for (const auto *C : D->clauselists()) { in VisitOMPRequiresDecl()
1905 void TextNodeDumper::VisitOMPCapturedExprDecl(const OMPCapturedExprDecl *D) { in VisitOMPCapturedExprDecl() argument
1906 dumpName(D); in VisitOMPCapturedExprDecl()
1907 dumpType(D->getType()); in VisitOMPCapturedExprDecl()
1910 void TextNodeDumper::VisitNamespaceDecl(const NamespaceDecl *D) { in VisitNamespaceDecl() argument
1911 dumpName(D); in VisitNamespaceDecl()
1912 if (D->isInline()) in VisitNamespaceDecl()
1914 if (!D->isOriginalNamespace()) in VisitNamespaceDecl()
1915 dumpDeclRef(D->getOriginalNamespace(), "original"); in VisitNamespaceDecl()
1918 void TextNodeDumper::VisitUsingDirectiveDecl(const UsingDirectiveDecl *D) { in VisitUsingDirectiveDecl() argument
1920 dumpBareDeclRef(D->getNominatedNamespace()); in VisitUsingDirectiveDecl()
1923 void TextNodeDumper::VisitNamespaceAliasDecl(const NamespaceAliasDecl *D) { in VisitNamespaceAliasDecl() argument
1924 dumpName(D); in VisitNamespaceAliasDecl()
1925 dumpDeclRef(D->getAliasedNamespace()); in VisitNamespaceAliasDecl()
1928 void TextNodeDumper::VisitTypeAliasDecl(const TypeAliasDecl *D) { in VisitTypeAliasDecl() argument
1929 dumpName(D); in VisitTypeAliasDecl()
1930 dumpType(D->getUnderlyingType()); in VisitTypeAliasDecl()
1934 const TypeAliasTemplateDecl *D) { in VisitTypeAliasTemplateDecl() argument
1935 dumpName(D); in VisitTypeAliasTemplateDecl()
1938 void TextNodeDumper::VisitCXXRecordDecl(const CXXRecordDecl *D) { in VisitCXXRecordDecl() argument
1939 VisitRecordDecl(D); in VisitCXXRecordDecl()
1940 if (!D->isCompleteDefinition()) in VisitCXXRecordDecl()
1949 if (D->fn()) \ in VisitCXXRecordDecl()
2001 if (!D->needsOverloadResolutionForCopyConstructor()) in VisitCXXRecordDecl()
2019 if (!D->needsOverloadResolutionForMoveConstructor()) in VisitCXXRecordDecl()
2065 if (!D->needsOverloadResolutionForDestructor()) in VisitCXXRecordDecl()
2070 for (const auto &I : D->bases()) { in VisitCXXRecordDecl()
2082 void TextNodeDumper::VisitFunctionTemplateDecl(const FunctionTemplateDecl *D) { in VisitFunctionTemplateDecl() argument
2083 dumpName(D); in VisitFunctionTemplateDecl()
2086 void TextNodeDumper::VisitClassTemplateDecl(const ClassTemplateDecl *D) { in VisitClassTemplateDecl() argument
2087 dumpName(D); in VisitClassTemplateDecl()
2090 void TextNodeDumper::VisitVarTemplateDecl(const VarTemplateDecl *D) { in VisitVarTemplateDecl() argument
2091 dumpName(D); in VisitVarTemplateDecl()
2094 void TextNodeDumper::VisitBuiltinTemplateDecl(const BuiltinTemplateDecl *D) { in VisitBuiltinTemplateDecl() argument
2095 dumpName(D); in VisitBuiltinTemplateDecl()
2098 void TextNodeDumper::VisitTemplateTypeParmDecl(const TemplateTypeParmDecl *D) { in VisitTemplateTypeParmDecl() argument
2099 if (const auto *TC = D->getTypeConstraint()) { in VisitTemplateTypeParmDecl()
2107 } else if (D->wasDeclaredWithTypename()) in VisitTemplateTypeParmDecl()
2111 OS << " depth " << D->getDepth() << " index " << D->getIndex(); in VisitTemplateTypeParmDecl()
2112 if (D->isParameterPack()) in VisitTemplateTypeParmDecl()
2114 dumpName(D); in VisitTemplateTypeParmDecl()
2118 const NonTypeTemplateParmDecl *D) { in VisitNonTypeTemplateParmDecl() argument
2119 dumpType(D->getType()); in VisitNonTypeTemplateParmDecl()
2120 OS << " depth " << D->getDepth() << " index " << D->getIndex(); in VisitNonTypeTemplateParmDecl()
2121 if (D->isParameterPack()) in VisitNonTypeTemplateParmDecl()
2123 dumpName(D); in VisitNonTypeTemplateParmDecl()
2127 const TemplateTemplateParmDecl *D) { in VisitTemplateTemplateParmDecl() argument
2128 OS << " depth " << D->getDepth() << " index " << D->getIndex(); in VisitTemplateTemplateParmDecl()
2129 if (D->isParameterPack()) in VisitTemplateTemplateParmDecl()
2131 dumpName(D); in VisitTemplateTemplateParmDecl()
2134 void TextNodeDumper::VisitUsingDecl(const UsingDecl *D) { in VisitUsingDecl() argument
2136 if (D->getQualifier()) in VisitUsingDecl()
2137 D->getQualifier()->print(OS, D->getASTContext().getPrintingPolicy()); in VisitUsingDecl()
2138 OS << D->getDeclName(); in VisitUsingDecl()
2141 void TextNodeDumper::VisitUsingEnumDecl(const UsingEnumDecl *D) { in VisitUsingEnumDecl() argument
2143 dumpBareDeclRef(D->getEnumDecl()); in VisitUsingEnumDecl()
2147 const UnresolvedUsingTypenameDecl *D) { in VisitUnresolvedUsingTypenameDecl() argument
2149 if (D->getQualifier()) in VisitUnresolvedUsingTypenameDecl()
2150 D->getQualifier()->print(OS, D->getASTContext().getPrintingPolicy()); in VisitUnresolvedUsingTypenameDecl()
2151 OS << D->getDeclName(); in VisitUnresolvedUsingTypenameDecl()
2155 const UnresolvedUsingValueDecl *D) { in VisitUnresolvedUsingValueDecl() argument
2157 if (D->getQualifier()) in VisitUnresolvedUsingValueDecl()
2158 D->getQualifier()->print(OS, D->getASTContext().getPrintingPolicy()); in VisitUnresolvedUsingValueDecl()
2159 OS << D->getDeclName(); in VisitUnresolvedUsingValueDecl()
2160 dumpType(D->getType()); in VisitUnresolvedUsingValueDecl()
2163 void TextNodeDumper::VisitUsingShadowDecl(const UsingShadowDecl *D) { in VisitUsingShadowDecl() argument
2165 dumpBareDeclRef(D->getTargetDecl()); in VisitUsingShadowDecl()
2169 const ConstructorUsingShadowDecl *D) { in VisitConstructorUsingShadowDecl() argument
2170 if (D->constructsVirtualBase()) in VisitConstructorUsingShadowDecl()
2175 dumpBareDeclRef(D->getTargetDecl()); in VisitConstructorUsingShadowDecl()
2180 dumpBareDeclRef(D->getNominatedBaseClass()); in VisitConstructorUsingShadowDecl()
2182 dumpBareDeclRef(D->getNominatedBaseClassShadowDecl()); in VisitConstructorUsingShadowDecl()
2187 dumpBareDeclRef(D->getConstructedBaseClass()); in VisitConstructorUsingShadowDecl()
2189 dumpBareDeclRef(D->getConstructedBaseClassShadowDecl()); in VisitConstructorUsingShadowDecl()
2193 void TextNodeDumper::VisitLinkageSpecDecl(const LinkageSpecDecl *D) { in VisitLinkageSpecDecl() argument
2194 switch (D->getLanguage()) { in VisitLinkageSpecDecl()
2204 void TextNodeDumper::VisitAccessSpecDecl(const AccessSpecDecl *D) { in VisitAccessSpecDecl() argument
2206 dumpAccessSpecifier(D->getAccess()); in VisitAccessSpecDecl()
2209 void TextNodeDumper::VisitFriendDecl(const FriendDecl *D) { in VisitFriendDecl() argument
2210 if (TypeSourceInfo *T = D->getFriendType()) in VisitFriendDecl()
2214 void TextNodeDumper::VisitObjCIvarDecl(const ObjCIvarDecl *D) { in VisitObjCIvarDecl() argument
2215 dumpName(D); in VisitObjCIvarDecl()
2216 dumpType(D->getType()); in VisitObjCIvarDecl()
2217 if (D->getSynthesize()) in VisitObjCIvarDecl()
2220 switch (D->getAccessControl()) { in VisitObjCIvarDecl()
2239 void TextNodeDumper::VisitObjCMethodDecl(const ObjCMethodDecl *D) { in VisitObjCMethodDecl() argument
2240 if (D->isInstanceMethod()) in VisitObjCMethodDecl()
2244 dumpName(D); in VisitObjCMethodDecl()
2245 dumpType(D->getReturnType()); in VisitObjCMethodDecl()
2247 if (D->isVariadic()) in VisitObjCMethodDecl()
2251 void TextNodeDumper::VisitObjCTypeParamDecl(const ObjCTypeParamDecl *D) { in VisitObjCTypeParamDecl() argument
2252 dumpName(D); in VisitObjCTypeParamDecl()
2253 switch (D->getVariance()) { in VisitObjCTypeParamDecl()
2266 if (D->hasExplicitBound()) in VisitObjCTypeParamDecl()
2268 dumpType(D->getUnderlyingType()); in VisitObjCTypeParamDecl()
2271 void TextNodeDumper::VisitObjCCategoryDecl(const ObjCCategoryDecl *D) { in VisitObjCCategoryDecl() argument
2272 dumpName(D); in VisitObjCCategoryDecl()
2273 dumpDeclRef(D->getClassInterface()); in VisitObjCCategoryDecl()
2274 dumpDeclRef(D->getImplementation()); in VisitObjCCategoryDecl()
2275 for (const auto *P : D->protocols()) in VisitObjCCategoryDecl()
2279 void TextNodeDumper::VisitObjCCategoryImplDecl(const ObjCCategoryImplDecl *D) { in VisitObjCCategoryImplDecl() argument
2280 dumpName(D); in VisitObjCCategoryImplDecl()
2281 dumpDeclRef(D->getClassInterface()); in VisitObjCCategoryImplDecl()
2282 dumpDeclRef(D->getCategoryDecl()); in VisitObjCCategoryImplDecl()
2285 void TextNodeDumper::VisitObjCProtocolDecl(const ObjCProtocolDecl *D) { in VisitObjCProtocolDecl() argument
2286 dumpName(D); in VisitObjCProtocolDecl()
2288 for (const auto *Child : D->protocols()) in VisitObjCProtocolDecl()
2292 void TextNodeDumper::VisitObjCInterfaceDecl(const ObjCInterfaceDecl *D) { in VisitObjCInterfaceDecl() argument
2293 dumpName(D); in VisitObjCInterfaceDecl()
2294 dumpDeclRef(D->getSuperClass(), "super"); in VisitObjCInterfaceDecl()
2296 dumpDeclRef(D->getImplementation()); in VisitObjCInterfaceDecl()
2297 for (const auto *Child : D->protocols()) in VisitObjCInterfaceDecl()
2302 const ObjCImplementationDecl *D) { in VisitObjCImplementationDecl() argument
2303 dumpName(D); in VisitObjCImplementationDecl()
2304 dumpDeclRef(D->getSuperClass(), "super"); in VisitObjCImplementationDecl()
2305 dumpDeclRef(D->getClassInterface()); in VisitObjCImplementationDecl()
2309 const ObjCCompatibleAliasDecl *D) { in VisitObjCCompatibleAliasDecl() argument
2310 dumpName(D); in VisitObjCCompatibleAliasDecl()
2311 dumpDeclRef(D->getClassInterface()); in VisitObjCCompatibleAliasDecl()
2314 void TextNodeDumper::VisitObjCPropertyDecl(const ObjCPropertyDecl *D) { in VisitObjCPropertyDecl() argument
2315 dumpName(D); in VisitObjCPropertyDecl()
2316 dumpType(D->getType()); in VisitObjCPropertyDecl()
2318 if (D->getPropertyImplementation() == ObjCPropertyDecl::Required) in VisitObjCPropertyDecl()
2320 else if (D->getPropertyImplementation() == ObjCPropertyDecl::Optional) in VisitObjCPropertyDecl()
2323 ObjCPropertyAttribute::Kind Attrs = D->getPropertyAttributes(); in VisitObjCPropertyDecl()
2350 dumpDeclRef(D->getGetterMethodDecl(), "getter"); in VisitObjCPropertyDecl()
2352 dumpDeclRef(D->getSetterMethodDecl(), "setter"); in VisitObjCPropertyDecl()
2356 void TextNodeDumper::VisitObjCPropertyImplDecl(const ObjCPropertyImplDecl *D) { in VisitObjCPropertyImplDecl() argument
2357 dumpName(D->getPropertyDecl()); in VisitObjCPropertyImplDecl()
2358 if (D->getPropertyImplementation() == ObjCPropertyImplDecl::Synthesize) in VisitObjCPropertyImplDecl()
2362 dumpDeclRef(D->getPropertyDecl()); in VisitObjCPropertyImplDecl()
2363 dumpDeclRef(D->getPropertyIvarDecl()); in VisitObjCPropertyImplDecl()
2366 void TextNodeDumper::VisitBlockDecl(const BlockDecl *D) { in VisitBlockDecl() argument
2367 if (D->isVariadic()) in VisitBlockDecl()
2370 if (D->capturesCXXThis()) in VisitBlockDecl()
2374 void TextNodeDumper::VisitConceptDecl(const ConceptDecl *D) { in VisitConceptDecl() argument
2375 dumpName(D); in VisitConceptDecl()