Lines Matching defs:ND

112 static const FunctionDecl *getStructor(const NamedDecl *ND) {
113 if (const auto *FTD = dyn_cast<FunctionTemplateDecl>(ND))
116 const auto *FD = cast<FunctionDecl>(ND);
197 bool getNextDiscriminator(const NamedDecl *ND, unsigned &disc) {
198 const DeclContext *DC = getEffectiveDeclContext(ND);
204 if (const auto *RD = dyn_cast<CXXRecordDecl>(ND)) {
212 if (ND->isExternallyVisible()) {
213 disc = getASTContext().getManglingNumber(ND);
218 if (const TagDecl *Tag = dyn_cast<TagDecl>(ND)) {
226 unsigned &discriminator = Uniquifier[ND];
228 discriminator = ++Discriminator[std::make_pair(DC, ND->getIdentifier())];
310 void mangleName(const NamedDecl *ND);
329 void mangleNestedName(const NamedDecl *ND);
332 bool isStructorDecl(const NamedDecl *ND) const {
333 return ND == Structor || getStructor(ND) == Structor;
343 void mangleUnqualifiedName(const NamedDecl *ND) {
344 mangleUnqualifiedName(ND, ND->getDeclName());
346 void mangleUnqualifiedName(const NamedDecl *ND, DeclarationName Name);
355 void mangleUnscopedTemplateName(const TemplateDecl *ND);
716 void MicrosoftCXXNameMangler::mangleName(const NamedDecl *ND) {
720 mangleUnqualifiedName(ND);
722 mangleNestedName(ND);
760 isTemplate(const NamedDecl *ND, const TemplateArgumentList *&TemplateArgs) {
762 if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) {
771 dyn_cast<ClassTemplateSpecializationDecl>(ND)) {
778 dyn_cast<VarTemplateSpecializationDecl>(ND)) {
786 void MicrosoftCXXNameMangler::mangleUnqualifiedName(const NamedDecl *ND,
795 if (const TemplateDecl *TD = isTemplate(ND, TemplateArgs)) {
820 // It's important to key cache reads off ND, not TD -- the same TD can
821 // be used with different TemplateArgs, but ND uniquely identifies
823 ArgBackRefMap::iterator Found = TemplateArgBackReferences.find(ND);
826 TemplateArgStringMap::iterator Found = TemplateArgStrings.find(ND);
842 TemplateArgBackReferences[ND] =
845 TemplateArgStrings[ND] =
865 assert(ND && "mangling empty name without declaration");
867 if (const NamespaceDecl *NS = dyn_cast<NamespaceDecl>(ND)) {
874 if (const DecompositionDecl *DD = dyn_cast<DecompositionDecl>(ND)) {
884 if (const VarDecl *VD = dyn_cast<VarDecl>(ND)) {
899 const TagDecl *TD = cast<TagDecl>(ND);
994 if (isStructorDecl(ND)) {
1008 if (isStructorDecl(ND))
1025 mangleOperatorName(Name.getCXXOverloadedOperator(), ND->getLocation());
1044 void MicrosoftCXXNameMangler::mangleNestedName(const NamedDecl *ND) {
1045 const DeclContext *DC = getEffectiveDeclContext(ND);
1047 if (isa<TagDecl>(ND) || isa<VarDecl>(ND)) {
1049 if (Context.getNextDiscriminator(ND, Disc)) {
1095 if (const auto *ND = dyn_cast<NamedDecl>(MC))
1096 mangleUnqualifiedName(ND);
1125 ND = cast<NamedDecl>(DC);
1126 if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) {
1130 mangleUnqualifiedName(ND);
1133 if (const auto *LDADC = getLambdaDefaultArgumentDeclContext(ND)) {
1458 const NamedDecl *ND = TA.getAsDecl();
1459 if (isa<FieldDecl>(ND) || isa<IndirectFieldDecl>(ND)) {
1460 mangleMemberDataPointer(cast<CXXRecordDecl>(ND->getDeclContext())
1462 cast<ValueDecl>(ND));
1463 } else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) {
1474 mangle(ND, TA.getParamTypeForDecl()->isReferenceType() ? "$E?" : "$1?");
1536 const NamedDecl *ND =
1538 if (const auto *TD = dyn_cast<TagDecl>(ND)) {
1540 } else if (isa<TypeAliasDecl>(ND)) {
1542 mangleName(ND);