Home | History | Annotate | Download | only in Sema

Lines Matching refs:Dc

201   for (DeclContext *DC = S.CurContext;
202 DC && FoundTypeDecl == UnqualifiedTypeNameLookupResult::NotFound;
203 DC = DC->getParent()) {
206 RD = dyn_cast<CXXRecordDecl>(DC);
460 synthesizeCurrentNestedNameSpecifier(ASTContext &Context, DeclContext *DC) {
461 for (;; DC = DC->getLookupParent()) {
462 DC = DC->getPrimaryContext();
463 auto *ND = dyn_cast<NamespaceDecl>(DC);
466 else if (auto *RD = dyn_cast<CXXRecordDecl>(DC))
469 else if (isa<TranslationUnitDecl>(DC))
581 } else if (DeclContext *DC = computeDeclContext(*SS, false)) {
587 << II << DC << DroppedSpecifier << SS->getRange());
630 else if (DeclContext *DC = computeDeclContext(*SS, false))
632 << II << DC << SS->getRange();
1035 DeclContext *Sema::getContainingDC(DeclContext *DC) {
1048 // lexically containing DC (which could be a nested class).
1049 if (isa<FunctionDecl>(DC) && !isLambdaCallOperator(DC)) {
1050 DC = DC->getLexicalParent();
1054 if (!isa<CXXRecordDecl>(DC))
1055 return DC;
1060 while (CXXRecordDecl *RD = dyn_cast<CXXRecordDecl>(DC->getLexicalParent()))
1061 DC = RD;
1065 return DC;
1068 return DC->getLexicalParent();
1071 void Sema::PushDeclContext(Scope *S, DeclContext *DC) {
1072 assert(getContainingDC(DC) == CurContext &&
1074 CurContext = DC;
1075 S->setEntity(DC);
1088 void Sema::EnterDeclaratorContext(Scope *S, DeclContext *DC) {
1113 CurContext = DC;
1114 S->setEntity(DC);
1257 Scope *Sema::getScopeForDeclContext(Scope *S, DeclContext *DC) {
1258 DeclContext *TargetDC = DC->getPrimaryContext();
1342 const DeclContext *DC = D->getDeclContext();
1343 while (!DC->isTranslationUnit()) {
1344 if (const RecordDecl *RD = dyn_cast<RecordDecl>(DC)){
1348 DC = DC->getParent();
2527 const DeclContext *DC = Old->getDeclContext();
2528 if (DC->isRecord())
4116 Declarator Dc(DS, Declarator::MemberContext);
4117 TypeSourceInfo *TInfo = GetTypeForDeclarator(Dc, S);
4214 Declarator Dc(DS, Declarator::TypeNameContext);
4215 TypeSourceInfo *TInfo = GetTypeForDeclarator(Dc, S);
4501 bool Sema::DiagnoseClassNameShadow(DeclContext *DC,
4505 if (CXXRecordDecl *Record = dyn_cast<CXXRecordDecl>(DC))
4519 /// \param DC The declaration context to which the nested-name-specifier
4527 bool Sema::diagnoseQualifiedDeclaration(CXXScopeSpec &SS, DeclContext *DC,
4543 if (Cur->Equals(DC)) {
4557 if (!Cur->Encloses(DC)) {
4561 else if (isa<TranslationUnitDecl>(DC))
4572 << Name << cast<NamedDecl>(Cur) << cast<NamedDecl>(DC) << SS.getRange();
4632 DeclContext *DC = CurContext;
4641 DC = computeDeclContext(D.getCXXScopeSpec(), EnteringContext);
4642 if (!DC || isa<EnumDecl>(DC)) {
4653 bool IsDependentContext = DC->isDependentContext();
4656 RequireCompleteDeclContext(D.getCXXScopeSpec(), DC))
4659 if (isa<CXXRecordDecl>(DC) && !cast<CXXRecordDecl>(DC)->hasDefinition()) {
4662 << Name << DC << D.getCXXScopeSpec().getRange();
4665 if (diagnoseQualifiedDeclaration(D.getCXXScopeSpec(), DC,
4667 if (DC->isRecord())
4678 ContextRAII SavedContext(*this, DC);
4684 if (DiagnoseClassNameShadow(DC, NameInfo))
4729 LookupQualifiedName(Previous, DC);
4793 New = ActOnTypedefDeclarator(S, D, DC, TInfo, Previous);
4795 New = ActOnFunctionDeclarator(S, D, DC, TInfo, Previous,
4799 New = ActOnVariableDeclarator(S, D, DC, TInfo, Previous, TemplateParamLists,
4982 Sema::ActOnTypedefDeclarator(Scope* S, Declarator& D, DeclContext* DC,
4990 DC = CurContext;
5015 NamedDecl *ND = ActOnTypedefNameDecl(S, DC, NewTD, Previous, Redeclaration);
5062 Sema::ActOnTypedefNameDecl(Scope *S, DeclContext *DC, TypedefNameDecl *NewTD,
5066 FilterLookupForScope(Previous, DC, S, /*ConsiderLinkage*/false,
5104 /// \param DC the context in which the new declaration is being
5110 isOutOfScopePreviousDeclaration(NamedDecl *PrevDecl, DeclContext *DC,
5125 DeclContext *OuterContext = DC->getRedeclContext();
5396 const DeclContext *DC = VD->getDeclContext()->getRedeclContext();
5397 if (DC->isFunctionOrMethod())
5399 if (DC->isFileContext())
5401 if (DC->isRecord())
5407 const DeclContext *DC = FD->getDeclContext()->getRedeclContext();
5408 if (DC->isFileContext() || DC->isFunctionOrMethod())
5410 if (DC->isRecord())
5442 bool Sema::adjustContextForLocalExternDecl(DeclContext *&DC) {
5443 if (!DC->isFunctionOrMethod())
5449 if (DC->isDependentContext())
5459 while (!DC->isFileContext() && !isa<LinkageSpecDecl>(DC))
5460 DC = DC->getParent();
5465 Sema::ActOnVariableDeclarator(Scope *S, Declarator &D, DeclContext *DC,
5477 if (SC == SC_None && !DC->isRecord() &&
5482 DeclContext *OriginalDC = DC;
5484 adjustContextForLocalExternDecl(DC);
5536 if (!DC->isRecord() && S->getFnParent() == nullptr) {
5586 NewVD = VarDecl::Create(Context, DC, D.getLocStart(),
5595 if (DC->isRecord() && !CurContext->isRecord()) {
5625 if (const CXXRecordDecl *RD = dyn_cast<CXXRecordDecl>(DC)) {
5708 NewVD = VarDecl::Create(Context, DC, D.getLocStart(),
5714 VarTemplateDecl::Create(Context, DC, D.getIdentifierLoc(), Name,
5763 !DC->isFunctionOrMethod()))
5947 (D.getCXXScopeSpec().isSet() && DC && DC->isRecord() &&
5948 DC->isDependentContext())
6446 bool Sema::AddOverriddenMethods(CXXRecordDecl *DC, CXXMethodDecl *MD) {
6455 if (DC->lookupInBases(&FindOverriddenMethod, &Data, Paths)) {
6721 DeclContext *DC, QualType &R,
6741 NewFD = FunctionDecl::Create(SemaRef.Context, DC,
6757 if (!DC->isRecord() &&
6765 assert(DC->isRecord() &&
6769 return CXXConstructorDecl::Create(SemaRef.Context, cast<CXXRecordDecl>(DC),
6777 if (DC->isRecord()) {
6779 CXXRecordDecl *Record = cast<CXXRecordDecl>(DC);
6804 return FunctionDecl::Create(SemaRef.Context, DC,
6812 if (!DC->isRecord()) {
6820 return CXXConversionDecl::Create(SemaRef.Context, cast<CXXRecordDecl>(DC),
6825 } else if (DC->isRecord()) {
6831 Name.getAsIdentifierInfo() == cast<CXXRecordDecl>(DC)->getIdentifier()){
6840 cast<CXXRecordDecl>(DC),
6855 return FunctionDecl::Create(SemaRef.Context, DC,
7043 Sema::ActOnFunctionDeclarator(Scope *S, Declarator &D, DeclContext *DC,
7075 DeclContext *OriginalDC = DC;
7076 bool IsLocalExternDecl = adjustContextForLocalExternDecl(DC);
7078 FunctionDecl *NewFD = CreateNewFunctionDecl(*this, D, DC, R, TInfo, SC,
7149 if (DC->isDependentContext()) {
7150 ContextRAII SavedContext(*this, DC);
7156 FunctionTemplate = FunctionTemplateDecl::Create(Context, DC,
7350 if (isa<CXXMethodDecl>(NewFD) && DC == CurContext &&
7600 (NewFD->getType()->isDependentType() || DC->isDependentContext() ||
7681 if (NewFD->isOverloadedOperator() && !DC->isRecord() &&
7698 DC && DC->isRecord() &&
7699 DC->isDependentContext())
7802 if (!DC->isRecord() && NewFD->isExternallyVisible())
9745 const DeclContext *DC = VD->getDeclContext();
9748 if (DC->getRedeclContext()->isFileContext() && VD->isExternallyVisible())
10030 ParmVarDecl *Sema::BuildParmVarDeclForTypedef(DeclContext *DC,
10036 ParmVarDecl *Param = ParmVarDecl::Create(Context, DC, Loc, Loc, nullptr,
10088 ParmVarDecl *Sema::CheckParameter(DeclContext *DC, SourceLocation StartLoc,
10115 ParmVarDecl *New = ParmVarDecl::Create(Context, DC, StartLoc, NameLoc, Name,
11237 DeclContext *DC = ND->getDeclContext()->getRedeclContext();
11238 for (; !DC->isTranslationUnit(); DC = DC->getParent()) {
11241 NamespaceDecl *Namespace = dyn_cast<NamespaceDecl>(DC);
11256 if (DC->isTranslationUnit())
11371 DeclContext *DC = CurContext;
11391 DC = computeDeclContext(SS, false);
11392 if (!DC) {
11397 DC = computeDeclContext(SS, true);
11398 if (!DC) {
11405 if (RequireCompleteDeclContext(SS, DC))
11408 SearchDC = DC;
11410 LookupQualifiedName(Previous, DC);
11430 << Kind << Name << DC << SS.getRange();
11475 DeclContext *DC = ND->getDeclContext()->getRedeclContext();
11476 if (DC->isFileContext() &&
11517 if (getLangOpts().CPlusPlus && Name && DC && StdNamespace &&
11518 DC->Equals(getStdNamespace()) && Name->isStr("bad_alloc")) {
11775 // of reference, make sure we build the redeclaration in the same DC
11950 diagnoseQualifiedDeclaration(SS, DC, OrigName, Loc))
12047 DeclContext *DC = New->getDeclContext()->getRedeclContext();
12048 DC->makeDeclVisibleInContext(New);
12050 if (Scope *EnclosingScope = getScopeForDeclContext(S, DC))
12176 void Sema::ActOnObjCTemporaryExitContainerContext(DeclContext *DC) {
12177 assert(DC == CurContext && "Mismatch of container contexts");
12178 OriginalLexicalContext = DC;
12182 void Sema::ActOnObjCReenterContainerContext(DeclContext *DC) {
12183 ActOnObjCContainerStartDefinition(cast<Decl>(DC));
12808 ObjCContainerDecl *DC = cast<ObjCContainerDecl>(EnclosingDecl);
12809 switch (DC->getKind()) {
12812 Context.ResetObjCLayout(cast<ObjCCategoryDecl>(DC)->getClassInterface());
12816 ResetObjCLayout(cast<ObjCImplementationDecl>(DC)->getClassInterface());
13976 DeclContext *DC) {
13977 if (auto *LSD = dyn_cast<LinkageSpecDecl>(DC)) {
13990 DC = LSD->getParent();
13993 while (isa<LinkageSpecDecl>(DC))
13994 DC = DC->getParent();
13995 if (!isa<TranslationUnitDecl>(DC)) {
13997 << M->getFullModuleName() << DC;
13998 S.Diag(cast<Decl>(DC)->getLocStart(),
14000 << DC;