Lines Matching refs:Dc
137 for (DeclContext *DC = S.CurContext; DC; DC = DC->getParent()) {
138 RD = dyn_cast<CXXRecordDecl>(DC);
415 synthesizeCurrentNestedNameSpecifier(ASTContext &Context, DeclContext *DC) {
416 for (;; DC = DC->getLookupParent()) {
417 DC = DC->getPrimaryContext();
418 auto *ND = dyn_cast<NamespaceDecl>(DC);
421 else if (auto *RD = dyn_cast<CXXRecordDecl>(DC))
424 else if (isa<TranslationUnitDecl>(DC))
532 } else if (DeclContext *DC = computeDeclContext(*SS, false)) {
538 << II << DC << DroppedSpecifier << SS->getRange());
581 else if (DeclContext *DC = computeDeclContext(*SS, false))
583 << II << DC << SS->getRange();
987 DeclContext *Sema::getContainingDC(DeclContext *DC) {
1000 // lexically containing DC (which could be a nested class).
1001 if (isa<FunctionDecl>(DC) && !isLambdaCallOperator(DC)) {
1002 DC = DC->getLexicalParent();
1006 if (!isa<CXXRecordDecl>(DC))
1007 return DC;
1012 while (CXXRecordDecl *RD = dyn_cast<CXXRecordDecl>(DC->getLexicalParent()))
1013 DC = RD;
1017 return DC;
1020 return DC->getLexicalParent();
1023 void Sema::PushDeclContext(Scope *S, DeclContext *DC) {
1024 assert(getContainingDC(DC) == CurContext &&
1026 CurContext = DC;
1027 S->setEntity(DC);
1040 void Sema::EnterDeclaratorContext(Scope *S, DeclContext *DC) {
1065 CurContext = DC;
1066 S->setEntity(DC);
1209 Scope *Sema::getScopeForDeclContext(Scope *S, DeclContext *DC) {
1210 DeclContext *TargetDC = DC->getPrimaryContext();
1294 const DeclContext *DC = D->getDeclContext();
1295 while (!DC->isTranslationUnit()) {
1296 if (const RecordDecl *RD = dyn_cast<RecordDecl>(DC)){
1300 DC = DC->getParent();
2367 const DeclContext *DC = Old->getDeclContext();
2368 if (DC->isRecord())
3876 Declarator Dc(DS, Declarator::MemberContext);
3877 TypeSourceInfo *TInfo = GetTypeForDeclarator(Dc, S);
3976 Declarator Dc(DS, Declarator::TypeNameContext);
3977 TypeSourceInfo *TInfo = GetTypeForDeclarator(Dc, S);
4257 bool Sema::DiagnoseClassNameShadow(DeclContext *DC,
4261 if (CXXRecordDecl *Record = dyn_cast<CXXRecordDecl>(DC))
4275 /// \param DC The declaration context to which the nested-name-specifier
4283 bool Sema::diagnoseQualifiedDeclaration(CXXScopeSpec &SS, DeclContext *DC,
4299 if (Cur->Equals(DC)) {
4313 if (!Cur->Encloses(DC)) {
4317 else if (isa<TranslationUnitDecl>(DC))
4328 << Name << cast<NamedDecl>(Cur) << cast<NamedDecl>(DC) << SS.getRange();
4388 DeclContext *DC = CurContext;
4397 DC = computeDeclContext(D.getCXXScopeSpec(), EnteringContext);
4398 if (!DC || isa<EnumDecl>(DC)) {
4409 bool IsDependentContext = DC->isDependentContext();
4412 RequireCompleteDeclContext(D.getCXXScopeSpec(), DC))
4415 if (isa<CXXRecordDecl>(DC) && !cast<CXXRecordDecl>(DC)->hasDefinition()) {
4418 << Name << DC << D.getCXXScopeSpec().getRange();
4421 if (diagnoseQualifiedDeclaration(D.getCXXScopeSpec(), DC,
4423 if (DC->isRecord())
4434 ContextRAII SavedContext(*this, DC);
4440 if (DiagnoseClassNameShadow(DC, NameInfo))
4485 LookupQualifiedName(Previous, DC);
4549 New = ActOnTypedefDeclarator(S, D, DC, TInfo, Previous);
4551 New = ActOnFunctionDeclarator(S, D, DC, TInfo, Previous,
4555 New = ActOnVariableDeclarator(S, D, DC, TInfo, Previous, TemplateParamLists,
4752 Sema::ActOnTypedefDeclarator(Scope* S, Declarator& D, DeclContext* DC,
4760 DC = CurContext;
4785 NamedDecl *ND = ActOnTypedefNameDecl(S, DC, NewTD, Previous, Redeclaration);
4832 Sema::ActOnTypedefNameDecl(Scope *S, DeclContext *DC, TypedefNameDecl *NewTD,
4836 FilterLookupForScope(Previous, DC, S, /*ConsiderLinkage*/false,
4874 /// \param DC the context in which the new declaration is being
4880 isOutOfScopePreviousDeclaration(NamedDecl *PrevDecl, DeclContext *DC,
4895 DeclContext *OuterContext = DC->getRedeclContext();
5131 const DeclContext *DC = VD->getDeclContext()->getRedeclContext();
5132 if (DC->isFunctionOrMethod())
5134 if (DC->isFileContext())
5136 if (DC->isRecord())
5142 const DeclContext *DC = FD->getDeclContext()->getRedeclContext();
5143 if (DC->isFileContext() || DC->isFunctionOrMethod())
5145 if (DC->isRecord())
5177 bool Sema::adjustContextForLocalExternDecl(DeclContext *&DC) {
5178 if (!DC->isFunctionOrMethod())
5184 if (DC->isDependentContext())
5194 while (!DC->isFileContext() && !isa<LinkageSpecDecl>(DC))
5195 DC = DC->getParent();
5200 Sema::ActOnVariableDeclarator(Scope *S, Declarator &D, DeclContext *DC,
5213 if (SC == SC_None && !DC->isRecord() &&
5218 DeclContext *OriginalDC = DC;
5220 adjustContextForLocalExternDecl(DC);
5272 if (!DC->isRecord() && S->getFnParent() == nullptr) {
5322 NewVD = VarDecl::Create(Context, DC, D.getLocStart(),
5331 if (DC->isRecord() && !CurContext->isRecord()) {
5361 if (const CXXRecordDecl *RD = dyn_cast<CXXRecordDecl>(DC)) {
5443 NewVD = VarDecl::Create(Context, DC, D.getLocStart(),
5449 VarTemplateDecl::Create(Context, DC, D.getIdentifierLoc(), Name,
5498 DC->isFunctionOrMethod())
5684 (D.getCXXScopeSpec().isSet() && DC && DC->isRecord() &&
5685 DC->isDependentContext())
6183 bool Sema::AddOverriddenMethods(CXXRecordDecl *DC, CXXMethodDecl *MD) {
6192 if (DC->lookupInBases(&FindOverriddenMethod, &Data, Paths)) {
6459 DeclContext *DC, QualType &R,
6479 NewFD = FunctionDecl::Create(SemaRef.Context, DC,
6498 if (!DC->isRecord() &&
6506 assert(DC->isRecord() &&
6510 return CXXConstructorDecl::Create(SemaRef.Context, cast<CXXRecordDecl>(DC),
6518 if (DC->isRecord()) {
6520 CXXRecordDecl *Record = cast<CXXRecordDecl>(DC);
6545 return FunctionDecl::Create(SemaRef.Context, DC,
6553 if (!DC->isRecord()) {
6561 return CXXConversionDecl::Create(SemaRef.Context, cast<CXXRecordDecl>(DC),
6566 } else if (DC->isRecord()) {
6572 Name.getAsIdentifierInfo() == cast<CXXRecordDecl>(DC)->getIdentifier()){
6581 cast<CXXRecordDecl>(DC),
6591 return FunctionDecl::Create(SemaRef.Context, DC,
6777 Sema::ActOnFunctionDeclarator(Scope *S, Declarator &D, DeclContext *DC,
6809 DeclContext *OriginalDC = DC;
6810 bool IsLocalExternDecl = adjustContextForLocalExternDecl(DC);
6812 FunctionDecl *NewFD = CreateNewFunctionDecl(*this, D, DC, R, TInfo, SC,
6883 if (DC->isDependentContext()) {
6884 ContextRAII SavedContext(*this, DC);
6890 FunctionTemplate = FunctionTemplateDecl::Create(Context, DC,
7084 if (isa<CXXMethodDecl>(NewFD) && DC == CurContext &&
7330 (NewFD->getType()->isDependentType() || DC->isDependentContext() ||
7408 if (NewFD->isOverloadedOperator() && !DC->isRecord() &&
7425 DC && DC->isRecord() &&
7426 DC->isDependentContext())
7529 if (!DC->isRecord() && NewFD->isExternallyVisible())
9273 const DeclContext *DC = VD->getDeclContext();
9276 if (DC->getRedeclContext()->isFileContext() && VD->isExternallyVisible())
9555 ParmVarDecl *Sema::BuildParmVarDeclForTypedef(DeclContext *DC,
9561 ParmVarDecl *Param = ParmVarDecl::Create(Context, DC, Loc, Loc, nullptr,
9613 DC, SourceLocation StartLoc,
9640 ParmVarDecl *New = ParmVarDecl::Create(Context, DC, StartLoc, NameLoc, Name,
10822 DeclContext *DC = CurContext;
10843 DC = computeDeclContext(SS, false);
10844 if (!DC) {
10849 DC = computeDeclContext(SS, true);
10850 if (!DC) {
10857 if (RequireCompleteDeclContext(SS, DC))
10860 SearchDC = DC;
10862 LookupQualifiedName(Previous, DC);
10882 << Kind << Name << DC << SS.getRange();
10922 DeclContext *DC = ND->getDeclContext()->getRedeclContext();
10923 if (DC->isFileContext() &&
10954 if (getLangOpts().CPlusPlus && Name && DC && StdNamespace &&
10955 DC->Equals(getStdNamespace()) && Name->isStr("bad_alloc")) {
11200 // of reference, make sure we build the redeclaration in the same DC
11375 diagnoseQualifiedDeclaration(SS, DC, OrigName, NameLoc))
11473 DeclContext *DC = New->getDeclContext()->getRedeclContext();
11474 DC->makeDeclVisibleInContext(New);
11476 if (Scope *EnclosingScope = getScopeForDeclContext(S, DC))
11602 void Sema::ActOnObjCTemporaryExitContainerContext(DeclContext *DC) {
11603 assert(DC == CurContext && "Mismatch of container contexts");
11604 OriginalLexicalContext = DC;
11608 void Sema::ActOnObjCReenterContainerContext(DeclContext *DC) {
11609 ActOnObjCContainerStartDefinition(cast<Decl>(DC));
12231 ObjCContainerDecl *DC = cast<ObjCContainerDecl>(EnclosingDecl);
12232 switch (DC->getKind()) {
12235 Context.ResetObjCLayout(cast<ObjCCategoryDecl>(DC)->getClassInterface());
12239 ResetObjCLayout(cast<ObjCImplementationDecl>(DC)->getClassInterface());
13332 DeclContext *DC) {
13333 if (auto *LSD = dyn_cast<LinkageSpecDecl>(DC)) {
13346 DC = LSD->getParent();
13349 while (isa<LinkageSpecDecl>(DC))
13350 DC = DC->getParent();
13351 if (!isa<TranslationUnitDecl>(DC)) {
13353 << M->getFullModuleName() << DC;
13354 S.Diag(cast<Decl>(DC)->getLocStart(),
13356 << DC;