Lines Matching refs:ND

60 static bool isLambda(const NamedDecl *ND) {  in isLambda()  argument
61 const CXXRecordDecl *Record = dyn_cast<CXXRecordDecl>(ND); in isLambda()
94 bool isUniqueInternalLinkageDecl(const NamedDecl *ND) override;
136 bool getNextDiscriminator(const NamedDecl *ND, unsigned &disc) { in getNextDiscriminator() argument
138 if (isLambda(ND)) in getNextDiscriminator()
142 if (const TagDecl *Tag = dyn_cast<TagDecl>(ND)) { in getNextDiscriminator()
148 if (ND->isExternallyVisible()) { in getNextDiscriminator()
149 unsigned discriminator = getASTContext().getManglingNumber(ND, isAux()); in getNextDiscriminator()
157 unsigned &discriminator = Uniquifier[ND]; in getNextDiscriminator()
159 const DeclContext *DC = getEffectiveDeclContext(ND); in getNextDiscriminator()
160 discriminator = ++Discriminator[std::make_pair(DC, ND->getIdentifier())]; in getNextDiscriminator()
208 bool isInternalLinkageDecl(const NamedDecl *ND);
295 void write(raw_ostream &Out, const NamedDecl *ND, in write() argument
297 ND = cast<NamedDecl>(ND->getCanonicalDecl()); in write()
298 if (!isa<FunctionDecl>(ND) && !isa<VarDecl>(ND)) { in write()
302 if (const auto *NS = dyn_cast<NamespaceDecl>(ND)) { in write()
313 if (const auto *AbiTag = ND->getAttr<AbiTagAttr>()) { in write()
442 void mangleNameOrStandardSubstitution(const NamedDecl *ND);
448 bool mangleSubstitution(const NamedDecl *ND);
456 bool mangleStandardSubstitution(const NamedDecl *ND);
458 void addSubstitution(const NamedDecl *ND) { in addSubstitution() argument
459 ND = cast<NamedDecl>(ND->getCanonicalDecl()); in addSubstitution()
461 addSubstitution(reinterpret_cast<uintptr_t>(ND)); in addSubstitution()
486 void mangleModuleName(const NamedDecl *ND);
505 const NamedDecl *ND, const AbiTagList *AdditionalAbiTags = nullptr);
525 const NamedDecl *getClosurePrefix(const Decl *ND);
526 void mangleClosurePrefix(const NamedDecl *ND, bool NoFunction = false);
591 void writeAbiTags(const NamedDecl *ND,
666 bool ItaniumMangleContextImpl::isInternalLinkageDecl(const NamedDecl *ND) { in isInternalLinkageDecl() argument
667 if (ND && ND->getFormalLinkage() == InternalLinkage && in isInternalLinkageDecl()
668 !ND->isExternallyVisible() && in isInternalLinkageDecl()
669 getEffectiveDeclContext(ND)->isFileContext() && in isInternalLinkageDecl()
670 !ND->isInAnonymousNamespace()) in isInternalLinkageDecl()
677 const NamedDecl *ND) { in isUniqueInternalLinkageDecl() argument
678 if (!NeedsUniqueInternalLinkageNames || !ND) in isUniqueInternalLinkageDecl()
681 const auto *FD = dyn_cast<FunctionDecl>(ND); in isUniqueInternalLinkageDecl()
690 if (isInternalLinkageDecl(ND)) in isUniqueInternalLinkageDecl()
759 void CXXNameMangler::writeAbiTags(const NamedDecl *ND, in writeAbiTags() argument
762 AbiTags->write(Out, ND, DisableDerivedAbiTags ? nullptr : AdditionalAbiTags); in writeAbiTags()
766 const NamedDecl *ND, const AbiTagList *AdditionalAbiTags) { in mangleSourceNameWithAbiTags() argument
767 mangleSourceName(ND->getIdentifier()); in mangleSourceNameWithAbiTags()
768 writeAbiTags(ND, AdditionalAbiTags); in mangleSourceNameWithAbiTags()
922 const NamedDecl *ND = cast<NamedDecl>(GD.getDecl()); in isTemplate() local
924 if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) { in isTemplate()
933 dyn_cast<ClassTemplateSpecializationDecl>(ND)) { in isTemplate()
940 dyn_cast<VarTemplateSpecializationDecl>(ND)) { in isTemplate()
954 const NamedDecl *ND = cast<NamedDecl>(GD.getDecl()); in mangleName() local
955 if (const VarDecl *VD = dyn_cast<VarDecl>(ND)) { in mangleName()
1000 const NamedDecl *ND = cast<NamedDecl>(GD.getDecl()); in mangleNameWithAbiTags() local
1006 const DeclContext *DC = Context.getEffectiveDeclContext(ND); in mangleNameWithAbiTags()
1012 if (isLocalContainerContext(DC) && ND->hasLinkage() && !isLambda(ND)) in mangleNameWithAbiTags()
1015 else if (GetLocalClassDecl(ND)) { in mangleNameWithAbiTags()
1029 if (const NamedDecl *PrefixND = getClosurePrefix(ND)) { in mangleNameWithAbiTags()
1050 void CXXNameMangler::mangleModuleName(const NamedDecl *ND) { in mangleModuleName() argument
1051 if (ND->isExternallyVisible()) in mangleModuleName()
1052 if (Module *M = ND->getOwningModuleForLinkage()) in mangleModuleName()
1113 const TemplateDecl *ND = cast<TemplateDecl>(GD.getDecl()); in mangleUnscopedTemplateName() local
1116 if (mangleSubstitution(ND)) in mangleUnscopedTemplateName()
1120 if (const auto *TTP = dyn_cast<TemplateTemplateParmDecl>(ND)) { in mangleUnscopedTemplateName()
1124 } else if (isa<BuiltinTemplateDecl>(ND) || isa<ConceptDecl>(ND)) { in mangleUnscopedTemplateName()
1127 mangleUnscopedName(GD.getWithDecl(ND->getTemplatedDecl()), DC, in mangleUnscopedTemplateName()
1131 addSubstitution(ND); in mangleUnscopedTemplateName()
1406 const NamedDecl *ND = cast_or_null<NamedDecl>(GD.getDecl()); in mangleUnqualifiedName() local
1412 if (ND && DC && DC->isFileContext()) in mangleUnqualifiedName()
1413 mangleModuleName(ND); in mangleUnqualifiedName()
1421 if (auto *DD = dyn_cast<DecompositionDecl>(ND)) { in mangleUnqualifiedName()
1431 writeAbiTags(ND, AdditionalAbiTags); in mangleUnqualifiedName()
1435 if (auto *GD = dyn_cast<MSGuidDecl>(ND)) { in mangleUnqualifiedName()
1445 if (auto *TPO = dyn_cast<TemplateParamObjectDecl>(ND)) { in mangleUnqualifiedName()
1467 if (Context.isInternalLinkageDecl(ND)) in mangleUnqualifiedName()
1470 auto *FD = dyn_cast<FunctionDecl>(ND); in mangleUnqualifiedName()
1484 writeAbiTags(ND, AdditionalAbiTags); in mangleUnqualifiedName()
1489 assert(ND && "mangling empty name without declaration"); in mangleUnqualifiedName()
1491 if (const NamespaceDecl *NS = dyn_cast<NamespaceDecl>(ND)) { in mangleUnqualifiedName()
1499 if (const VarDecl *VD = dyn_cast<VarDecl>(ND)) { in mangleUnqualifiedName()
1533 if (isa<ObjCContainerDecl>(ND)) in mangleUnqualifiedName()
1537 const TagDecl *TD = cast<TagDecl>(ND); in mangleUnqualifiedName()
1613 cast<CXXConstructorDecl>(ND)->getInheritedConstructor()) { in mangleUnqualifiedName()
1621 if (ND == Structor) in mangleUnqualifiedName()
1635 writeAbiTags(ND, AdditionalAbiTags); in mangleUnqualifiedName()
1640 if (ND == Structor) in mangleUnqualifiedName()
1648 writeAbiTags(ND, AdditionalAbiTags); in mangleUnqualifiedName()
1652 if (ND && Arity == UnknownArity) { in mangleUnqualifiedName()
1653 Arity = cast<FunctionDecl>(ND)->getNumParams(); in mangleUnqualifiedName()
1656 if (const auto *MD = dyn_cast<CXXMethodDecl>(ND)) in mangleUnqualifiedName()
1664 writeAbiTags(ND, AdditionalAbiTags); in mangleUnqualifiedName()
1702 const NamedDecl *ND = cast<NamedDecl>(GD.getDecl()); in mangleNestedName() local
1709 if (const CXXMethodDecl *Method = dyn_cast<CXXMethodDecl>(ND)) { in mangleNestedName()
1841 const NamedDecl *ND = cast<NamedDecl>(D); in mangleLocalName() local
1842 mangleNestedName(GD, Context.getEffectiveDeclContext(ND), in mangleLocalName()
1866 if (const NamedDecl *ND = dyn_cast<NamedDecl>(RD ? RD : D)) { in mangleLocalName() local
1868 if (Context.getNextDiscriminator(ND, disc)) { in mangleLocalName()
1902 const auto *ND = cast<NamedDecl>(Context); in mangleUnqualifiedBlock() local
1903 if (ND->getIdentifier()) { in mangleUnqualifiedBlock()
1904 mangleSourceNameWithAbiTags(ND); in mangleUnqualifiedBlock()
2088 const NamedDecl *ND = cast<NamedDecl>(DC); in manglePrefix() local
2089 if (mangleSubstitution(ND)) in manglePrefix()
2094 if (GlobalDecl TD = isTemplate(ND, TemplateArgs)) { in manglePrefix()
2097 } else if (const NamedDecl *PrefixND = getClosurePrefix(ND)) { in manglePrefix()
2099 mangleUnqualifiedName(ND, nullptr, nullptr); in manglePrefix()
2101 const DeclContext *DC = Context.getEffectiveDeclContext(ND); in manglePrefix()
2103 mangleUnqualifiedName(ND, DC, nullptr); in manglePrefix()
2106 addSubstitution(ND); in manglePrefix()
2142 const TemplateDecl *ND = cast<TemplateDecl>(GD.getDecl()); in mangleTemplatePrefix() local
2149 if (mangleSubstitution(ND)) in mangleTemplatePrefix()
2153 if (const auto *TTP = dyn_cast<TemplateTemplateParmDecl>(ND)) { in mangleTemplatePrefix()
2156 const DeclContext *DC = Context.getEffectiveDeclContext(ND); in mangleTemplatePrefix()
2158 if (isa<BuiltinTemplateDecl>(ND) || isa<ConceptDecl>(ND)) in mangleTemplatePrefix()
2161 mangleUnqualifiedName(GD.getWithDecl(ND->getTemplatedDecl()), DC, in mangleTemplatePrefix()
2165 addSubstitution(ND); in mangleTemplatePrefix()
2168 const NamedDecl *CXXNameMangler::getClosurePrefix(const Decl *ND) { in getClosurePrefix() argument
2174 if (auto *Block = dyn_cast<BlockDecl>(ND)) { in getClosurePrefix()
2176 } else if (auto *RD = dyn_cast<CXXRecordDecl>(ND)) { in getClosurePrefix()
2192 void CXXNameMangler::mangleClosurePrefix(const NamedDecl *ND, bool NoFunction) { in mangleClosurePrefix() argument
2195 if (mangleSubstitution(ND)) in mangleClosurePrefix()
2199 if (GlobalDecl TD = isTemplate(ND, TemplateArgs)) { in mangleClosurePrefix()
2203 const auto *DC = Context.getEffectiveDeclContext(ND); in mangleClosurePrefix()
2205 mangleUnqualifiedName(ND, DC, nullptr); in mangleClosurePrefix()
2210 addSubstitution(ND); in mangleClosurePrefix()
2902 void CXXNameMangler::mangleNameOrStandardSubstitution(const NamedDecl *ND) { in mangleNameOrStandardSubstitution() argument
2903 if (!mangleStandardSubstitution(ND)) in mangleNameOrStandardSubstitution()
2904 mangleName(ND); in mangleNameOrStandardSubstitution()
6027 bool CXXNameMangler::mangleSubstitution(const NamedDecl *ND) { in mangleSubstitution() argument
6029 if (mangleStandardSubstitution(ND)) in mangleSubstitution()
6032 ND = cast<NamedDecl>(ND->getCanonicalDecl()); in mangleSubstitution()
6033 return mangleSubstitution(reinterpret_cast<uintptr_t>(ND)); in mangleSubstitution()
6149 bool CXXNameMangler::mangleStandardSubstitution(const NamedDecl *ND) { in mangleStandardSubstitution() argument
6151 if (const NamespaceDecl *NS = dyn_cast<NamespaceDecl>(ND)) { in mangleStandardSubstitution()
6159 if (const ClassTemplateDecl *TD = dyn_cast<ClassTemplateDecl>(ND)) { in mangleStandardSubstitution()
6181 dyn_cast<ClassTemplateSpecializationDecl>(ND)) { in mangleStandardSubstitution()