Lines Matching refs:DC

67   const DeclContext *DC = D->getDeclContext();
68 if (const CapturedDecl *CD = dyn_cast<CapturedDecl>(DC))
71 return DC;
74 static const DeclContext *getEffectiveParentContext(const DeclContext *DC) {
75 return getEffectiveDeclContext(cast<Decl>(DC));
78 static bool isLocalContainerContext(const DeclContext *DC) {
79 return isa<FunctionDecl>(DC) || isa<ObjCMethodDecl>(DC) || isa<BlockDecl>(DC);
83 const DeclContext *DC = getEffectiveDeclContext(D);
84 while (!DC->isNamespace() && !DC->isTranslationUnit()) {
85 if (isLocalContainerContext(DC))
87 D = cast<Decl>(DC);
88 DC = getEffectiveDeclContext(D);
183 const DeclContext *DC = getEffectiveDeclContext(ND);
184 discriminator = ++Discriminator[std::make_pair(DC, ND->getIdentifier())];
336 void mangleNestedName(const NamedDecl *ND, const DeclContext *DC,
342 void manglePrefix(const DeclContext *DC, bool NoFunction=false);
430 const DeclContext *DC = getEffectiveDeclContext(D);
432 if (DC->isFunctionOrMethod() && D->hasLinkage())
433 while (!DC->isNamespace() && !DC->isTranslationUnit())
434 DC = getEffectiveParentContext(DC);
435 if (DC->isTranslationUnit() && D->getFormalLinkage() != InternalLinkage &&
514 static const DeclContext *IgnoreLinkageSpecDecls(const DeclContext *DC) {
515 while (isa<LinkageSpecDecl>(DC)) {
516 DC = getEffectiveParentContext(DC);
519 return DC;
534 static bool isStdNamespace(const DeclContext *DC) {
535 if (!DC->isNamespace())
538 return isStd(cast<NamespaceDecl>(DC));
582 const DeclContext *DC = getEffectiveDeclContext(ND);
588 if (isLocalContainerContext(DC) && ND->hasLinkage() && !isLambda(ND))
589 while (!DC->isNamespace() && !DC->isTranslationUnit())
590 DC = getEffectiveParentContext(DC);
596 DC = IgnoreLinkageSpecDecls(DC);
598 if (DC->isTranslationUnit() || isStdNamespace(DC)) {
611 if (isLocalContainerContext(DC)) {
616 mangleNestedName(ND, DC);
621 const DeclContext *DC = IgnoreLinkageSpecDecls(getEffectiveDeclContext(TD));
623 if (DC->isTranslationUnit() || isStdNamespace(DC)) {
1261 const DeclContext *DC,
1281 manglePrefix(DC, NoFunction);
1308 const DeclContext *DC = getEffectiveDeclContext(RD ? RD : D);
1312 if (const ObjCMethodDecl *MD = dyn_cast<ObjCMethodDecl>(DC))
1314 else if (const BlockDecl *BD = dyn_cast<BlockDecl>(DC))
1317 mangleFunctionEncoding(cast<FunctionDecl>(DC));
1389 const DeclContext *DC = getEffectiveDeclContext(Block);
1390 if (isLocalContainerContext(DC)) {
1493 void CXXNameMangler::manglePrefix(const DeclContext *DC, bool NoFunction) {
1500 DC = IgnoreLinkageSpecDecls(DC);
1502 if (DC->isTranslationUnit())
1505 if (NoFunction && isLocalContainerContext(DC))
1508 assert(!isLocalContainerContext(DC));
1510 const NamedDecl *ND = cast<NamedDecl>(DC);