Lines Matching refs:ND
71 static const FunctionDecl *getStructor(const NamedDecl *ND) { in getStructor() argument
72 if (const auto *FTD = dyn_cast<FunctionTemplateDecl>(ND)) in getStructor()
75 const auto *FD = cast<FunctionDecl>(ND); in getStructor()
82 static bool isLambda(const NamedDecl *ND) { in isLambda() argument
83 const CXXRecordDecl *Record = dyn_cast<CXXRecordDecl>(ND); in isLambda()
164 bool getNextDiscriminator(const NamedDecl *ND, unsigned &disc) { in getNextDiscriminator() argument
166 if (isLambda(ND)) in getNextDiscriminator()
169 const DeclContext *DC = getEffectiveDeclContext(ND); in getNextDiscriminator()
174 if (ND->isExternallyVisible()) { in getNextDiscriminator()
175 disc = getASTContext().getManglingNumber(ND); in getNextDiscriminator()
180 if (const TagDecl *Tag = dyn_cast<TagDecl>(ND)) { in getNextDiscriminator()
188 unsigned &discriminator = Uniquifier[ND]; in getNextDiscriminator()
190 discriminator = ++Discriminator[std::make_pair(DC, ND->getIdentifier())]; in getNextDiscriminator()
256 void mangleName(const NamedDecl *ND);
271 void mangleNestedName(const NamedDecl *ND);
274 void mangleUnqualifiedName(const NamedDecl *ND) { in mangleUnqualifiedName() argument
275 mangleUnqualifiedName(ND, ND->getDeclName()); in mangleUnqualifiedName()
277 void mangleUnqualifiedName(const NamedDecl *ND, DeclarationName Name);
286 void mangleUnscopedTemplateName(const TemplateDecl *ND);
617 void MicrosoftCXXNameMangler::mangleName(const NamedDecl *ND) { in mangleName() argument
621 mangleUnqualifiedName(ND); in mangleName()
623 mangleNestedName(ND); in mangleName()
661 isTemplate(const NamedDecl *ND, const TemplateArgumentList *&TemplateArgs) { in isTemplate() argument
663 if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) { in isTemplate()
672 dyn_cast<ClassTemplateSpecializationDecl>(ND)) { in isTemplate()
679 dyn_cast<VarTemplateSpecializationDecl>(ND)) { in isTemplate()
687 void MicrosoftCXXNameMangler::mangleUnqualifiedName(const NamedDecl *ND, in mangleUnqualifiedName() argument
696 if (const TemplateDecl *TD = isTemplate(ND, TemplateArgs)) { in mangleUnqualifiedName()
738 assert(ND && "mangling empty name without declaration"); in mangleUnqualifiedName()
740 if (const NamespaceDecl *NS = dyn_cast<NamespaceDecl>(ND)) { in mangleUnqualifiedName()
747 if (const VarDecl *VD = dyn_cast<VarDecl>(ND)) { in mangleUnqualifiedName()
762 const TagDecl *TD = cast<TagDecl>(ND); in mangleUnqualifiedName()
817 if (Structor == getStructor(ND)) { in mangleUnqualifiedName()
831 if (ND == Structor) in mangleUnqualifiedName()
848 mangleOperatorName(Name.getCXXOverloadedOperator(), ND->getLocation()); in mangleUnqualifiedName()
862 void MicrosoftCXXNameMangler::mangleNestedName(const NamedDecl *ND) { in mangleNestedName() argument
865 const DeclContext *DC = getEffectiveDeclContext(ND); in mangleNestedName()
868 if (isa<TagDecl>(ND) || isa<VarDecl>(ND)) { in mangleNestedName()
870 if (Context.getNextDiscriminator(ND, Disc)) { in mangleNestedName()
892 ND = cast<NamedDecl>(DC); in mangleNestedName()
893 if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) { in mangleNestedName()
897 mangleUnqualifiedName(ND); in mangleNestedName()
1201 const NamedDecl *ND = cast<NamedDecl>(TA.getAsDecl()); in mangleTemplateArg() local
1202 if (isa<FieldDecl>(ND) || isa<IndirectFieldDecl>(ND)) { in mangleTemplateArg()
1204 cast<CXXRecordDecl>(ND->getDeclContext())->getMostRecentDecl(), in mangleTemplateArg()
1205 cast<ValueDecl>(ND)); in mangleTemplateArg()
1206 } else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) { in mangleTemplateArg()
1216 mangle(ND, TA.getParamTypeForDecl()->isReferenceType() ? "$E?" : "$1?"); in mangleTemplateArg()
1278 const NamedDecl *ND = in mangleTemplateArg() local
1280 if (const auto *TD = dyn_cast<TagDecl>(ND)) { in mangleTemplateArg()
1282 } else if (isa<TypeAliasDecl>(ND)) { in mangleTemplateArg()
1284 mangleName(ND); in mangleTemplateArg()