Lines Matching refs:ND
62 static bool isLambda(const NamedDecl *ND) { in isLambda() argument
63 const CXXRecordDecl *Record = dyn_cast<CXXRecordDecl>(ND); in isLambda()
96 bool isUniqueInternalLinkageDecl(const NamedDecl *ND) override;
139 bool getNextDiscriminator(const NamedDecl *ND, unsigned &disc) { in getNextDiscriminator() argument
141 if (isLambda(ND)) in getNextDiscriminator()
145 if (const TagDecl *Tag = dyn_cast<TagDecl>(ND)) { in getNextDiscriminator()
151 if (ND->isExternallyVisible()) { in getNextDiscriminator()
152 unsigned discriminator = getASTContext().getManglingNumber(ND, isAux()); in getNextDiscriminator()
160 unsigned &discriminator = Uniquifier[ND]; in getNextDiscriminator()
162 const DeclContext *DC = getEffectiveDeclContext(ND); in getNextDiscriminator()
163 discriminator = ++Discriminator[std::make_pair(DC, ND->getIdentifier())]; in getNextDiscriminator()
211 bool isInternalLinkageDecl(const NamedDecl *ND);
306 void write(raw_ostream &Out, const NamedDecl *ND, in write() argument
308 ND = cast<NamedDecl>(ND->getCanonicalDecl()); in write()
309 if (!isa<FunctionDecl>(ND) && !isa<VarDecl>(ND)) { in write()
313 if (const auto *NS = dyn_cast<NamespaceDecl>(ND)) { in write()
324 if (const auto *AbiTag = ND->getAttr<AbiTagAttr>()) { in write()
467 void mangleNameOrStandardSubstitution(const NamedDecl *ND);
474 bool mangleSubstitution(const NamedDecl *ND);
482 bool mangleStandardSubstitution(const NamedDecl *ND);
484 void addSubstitution(const NamedDecl *ND) { in addSubstitution() argument
485 ND = cast<NamedDecl>(ND->getCanonicalDecl()); in addSubstitution()
487 addSubstitution(reinterpret_cast<uintptr_t>(ND)); in addSubstitution()
512 void mangleModuleName(const NamedDecl *ND);
531 const NamedDecl *ND, const AbiTagList *AdditionalAbiTags = nullptr);
556 const NamedDecl *getClosurePrefix(const Decl *ND);
557 void mangleClosurePrefix(const NamedDecl *ND, bool NoFunction = false);
628 void writeAbiTags(const NamedDecl *ND,
710 bool ItaniumMangleContextImpl::isInternalLinkageDecl(const NamedDecl *ND) { in isInternalLinkageDecl() argument
711 if (ND && ND->getFormalLinkage() == Linkage::Internal && in isInternalLinkageDecl()
712 !ND->isExternallyVisible() && in isInternalLinkageDecl()
713 getEffectiveDeclContext(ND)->isFileContext() && in isInternalLinkageDecl()
714 !ND->isInAnonymousNamespace()) in isInternalLinkageDecl()
721 const NamedDecl *ND) { in isUniqueInternalLinkageDecl() argument
722 if (!NeedsUniqueInternalLinkageNames || !ND) in isUniqueInternalLinkageDecl()
725 const auto *FD = dyn_cast<FunctionDecl>(ND); in isUniqueInternalLinkageDecl()
734 if (isInternalLinkageDecl(ND)) in isUniqueInternalLinkageDecl()
803 void CXXNameMangler::writeAbiTags(const NamedDecl *ND, in writeAbiTags() argument
806 AbiTags->write(Out, ND, DisableDerivedAbiTags ? nullptr : AdditionalAbiTags); in writeAbiTags()
810 const NamedDecl *ND, const AbiTagList *AdditionalAbiTags) { in mangleSourceNameWithAbiTags() argument
811 mangleSourceName(ND->getIdentifier()); in mangleSourceNameWithAbiTags()
812 writeAbiTags(ND, AdditionalAbiTags); in mangleSourceNameWithAbiTags()
979 const NamedDecl *ND = cast<NamedDecl>(GD.getDecl()); in isTemplate() local
981 if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) { in isTemplate()
990 dyn_cast<ClassTemplateSpecializationDecl>(ND)) { in isTemplate()
997 dyn_cast<VarTemplateSpecializationDecl>(ND)) { in isTemplate()
1011 const NamedDecl *ND = cast<NamedDecl>(GD.getDecl()); in mangleName() local
1012 if (const VarDecl *VD = dyn_cast<VarDecl>(ND)) { in mangleName()
1057 const NamedDecl *ND = cast<NamedDecl>(GD.getDecl()); in mangleNameWithAbiTags() local
1063 const DeclContext *DC = Context.getEffectiveDeclContext(ND); in mangleNameWithAbiTags()
1064 bool IsLambda = isLambda(ND); in mangleNameWithAbiTags()
1070 if (isLocalContainerContext(DC) && ND->hasLinkage() && !IsLambda) in mangleNameWithAbiTags()
1073 else if (GetLocalClassDecl(ND) && in mangleNameWithAbiTags()
1083 if (const NamedDecl *PrefixND = getClosurePrefix(ND)) { in mangleNameWithAbiTags()
1109 void CXXNameMangler::mangleModuleName(const NamedDecl *ND) { in mangleModuleName() argument
1110 if (ND->isExternallyVisible()) in mangleModuleName()
1111 if (Module *M = ND->getOwningModuleForLinkage()) in mangleModuleName()
1172 const TemplateDecl *ND = cast<TemplateDecl>(GD.getDecl()); in mangleUnscopedTemplateName() local
1175 if (mangleSubstitution(ND)) in mangleUnscopedTemplateName()
1179 if (const auto *TTP = dyn_cast<TemplateTemplateParmDecl>(ND)) { in mangleUnscopedTemplateName()
1183 } else if (isa<BuiltinTemplateDecl>(ND) || isa<ConceptDecl>(ND)) { in mangleUnscopedTemplateName()
1186 mangleUnscopedName(GD.getWithDecl(ND->getTemplatedDecl()), DC, in mangleUnscopedTemplateName()
1190 addSubstitution(ND); in mangleUnscopedTemplateName()
1465 const NamedDecl *ND = cast_or_null<NamedDecl>(GD.getDecl()); in mangleUnqualifiedName() local
1471 if (ND && DC && DC->isFileContext()) in mangleUnqualifiedName()
1472 mangleModuleName(ND); in mangleUnqualifiedName()
1476 auto *FD = dyn_cast<FunctionDecl>(ND); in mangleUnqualifiedName()
1477 auto *FTD = dyn_cast<FunctionTemplateDecl>(ND); in mangleUnqualifiedName()
1490 if (auto *DD = dyn_cast<DecompositionDecl>(ND)) { in mangleUnqualifiedName()
1500 writeAbiTags(ND, AdditionalAbiTags); in mangleUnqualifiedName()
1504 if (auto *GD = dyn_cast<MSGuidDecl>(ND)) { in mangleUnqualifiedName()
1514 if (auto *TPO = dyn_cast<TemplateParamObjectDecl>(ND)) { in mangleUnqualifiedName()
1536 if (Context.isInternalLinkageDecl(ND)) in mangleUnqualifiedName()
1552 writeAbiTags(ND, AdditionalAbiTags); in mangleUnqualifiedName()
1557 assert(ND && "mangling empty name without declaration"); in mangleUnqualifiedName()
1559 if (const NamespaceDecl *NS = dyn_cast<NamespaceDecl>(ND)) { in mangleUnqualifiedName()
1567 if (const VarDecl *VD = dyn_cast<VarDecl>(ND)) { in mangleUnqualifiedName()
1601 if (isa<ObjCContainerDecl>(ND)) in mangleUnqualifiedName()
1605 const TagDecl *TD = cast<TagDecl>(ND); in mangleUnqualifiedName()
1681 cast<CXXConstructorDecl>(ND)->getInheritedConstructor()) { in mangleUnqualifiedName()
1689 if (ND == Structor) in mangleUnqualifiedName()
1703 writeAbiTags(ND, AdditionalAbiTags); in mangleUnqualifiedName()
1708 if (ND == Structor) in mangleUnqualifiedName()
1716 assert(ND); in mangleUnqualifiedName()
1717 writeAbiTags(ND, AdditionalAbiTags); in mangleUnqualifiedName()
1721 if (ND && Arity == UnknownArity) { in mangleUnqualifiedName()
1722 Arity = cast<FunctionDecl>(ND)->getNumParams(); in mangleUnqualifiedName()
1725 if (const auto *MD = dyn_cast<CXXMethodDecl>(ND)) in mangleUnqualifiedName()
1733 writeAbiTags(ND, AdditionalAbiTags); in mangleUnqualifiedName()
1775 const NamedDecl *ND = cast<NamedDecl>(GD.getDecl()); in mangleNestedName() local
1782 if (const CXXMethodDecl *Method = dyn_cast<CXXMethodDecl>(ND)) { in mangleNestedName()
1916 const NamedDecl *ND = cast<NamedDecl>(D); in mangleLocalName() local
1917 mangleNestedName(GD, Context.getEffectiveDeclContext(ND), in mangleLocalName()
1941 if (const NamedDecl *ND = dyn_cast<NamedDecl>(RD ? RD : D)) { in mangleLocalName() local
1943 if (Context.getNextDiscriminator(ND, disc)) { in mangleLocalName()
1976 const auto *ND = cast<NamedDecl>(Context); in mangleUnqualifiedBlock() local
1977 if (ND->getIdentifier()) { in mangleUnqualifiedBlock()
1978 mangleSourceNameWithAbiTags(ND); in mangleUnqualifiedBlock()
2205 const NamedDecl *ND = cast<NamedDecl>(DC); in manglePrefix() local
2206 if (mangleSubstitution(ND)) in manglePrefix()
2211 if (GlobalDecl TD = isTemplate(ND, TemplateArgs)) { in manglePrefix()
2214 } else if (const NamedDecl *PrefixND = getClosurePrefix(ND)) { in manglePrefix()
2216 mangleUnqualifiedName(ND, nullptr, nullptr); in manglePrefix()
2218 const DeclContext *DC = Context.getEffectiveDeclContext(ND); in manglePrefix()
2220 mangleUnqualifiedName(ND, DC, nullptr); in manglePrefix()
2223 addSubstitution(ND); in manglePrefix()
2258 const TemplateDecl *ND = cast<TemplateDecl>(GD.getDecl()); in mangleTemplatePrefix() local
2265 if (mangleSubstitution(ND)) in mangleTemplatePrefix()
2269 if (const auto *TTP = dyn_cast<TemplateTemplateParmDecl>(ND)) { in mangleTemplatePrefix()
2272 const DeclContext *DC = Context.getEffectiveDeclContext(ND); in mangleTemplatePrefix()
2274 if (isa<BuiltinTemplateDecl>(ND) || isa<ConceptDecl>(ND)) in mangleTemplatePrefix()
2277 mangleUnqualifiedName(GD.getWithDecl(ND->getTemplatedDecl()), DC, in mangleTemplatePrefix()
2281 addSubstitution(ND); in mangleTemplatePrefix()
2284 const NamedDecl *CXXNameMangler::getClosurePrefix(const Decl *ND) { in getClosurePrefix() argument
2289 if (auto *Block = dyn_cast<BlockDecl>(ND)) { in getClosurePrefix()
2291 } else if (auto *RD = dyn_cast<CXXRecordDecl>(ND)) { in getClosurePrefix()
2307 void CXXNameMangler::mangleClosurePrefix(const NamedDecl *ND, bool NoFunction) { in mangleClosurePrefix() argument
2310 if (mangleSubstitution(ND)) in mangleClosurePrefix()
2314 if (GlobalDecl TD = isTemplate(ND, TemplateArgs)) { in mangleClosurePrefix()
2318 const auto *DC = Context.getEffectiveDeclContext(ND); in mangleClosurePrefix()
2320 mangleUnqualifiedName(ND, DC, nullptr); in mangleClosurePrefix()
2325 addSubstitution(ND); in mangleClosurePrefix()
3024 void CXXNameMangler::mangleNameOrStandardSubstitution(const NamedDecl *ND) { in mangleNameOrStandardSubstitution() argument
3025 if (!mangleStandardSubstitution(ND)) in mangleNameOrStandardSubstitution()
3026 mangleName(ND); in mangleNameOrStandardSubstitution()
6734 bool CXXNameMangler::mangleSubstitution(const NamedDecl *ND) { in mangleSubstitution() argument
6736 if (mangleStandardSubstitution(ND)) in mangleSubstitution()
6739 ND = cast<NamedDecl>(ND->getCanonicalDecl()); in mangleSubstitution()
6740 return mangleSubstitution(reinterpret_cast<uintptr_t>(ND)); in mangleSubstitution()
6856 bool CXXNameMangler::mangleStandardSubstitution(const NamedDecl *ND) { in mangleStandardSubstitution() argument
6858 if (const NamespaceDecl *NS = dyn_cast<NamespaceDecl>(ND)) { in mangleStandardSubstitution()
6866 if (const ClassTemplateDecl *TD = dyn_cast<ClassTemplateDecl>(ND)) { in mangleStandardSubstitution()
6888 dyn_cast<ClassTemplateSpecializationDecl>(ND)) { in mangleStandardSubstitution()