Lines Matching refs:Dc
316 else if (DeclContext *DC = computeDeclContext(*SS, false))
318 << &II << DC << CorrectedQuotedStr << SS->getRange()
359 else if (DeclContext *DC = computeDeclContext(*SS, false))
361 << &II << DC << SS->getRange();
716 DeclContext *Sema::getContainingDC(DeclContext *DC) {
721 if (isa<FunctionDecl>(DC)) {
722 DC = DC->getLexicalParent();
726 if (!isa<CXXRecordDecl>(DC))
727 return DC;
732 while (CXXRecordDecl *RD = dyn_cast<CXXRecordDecl>(DC->getLexicalParent()))
733 DC = RD;
737 return DC;
742 if (isa<ObjCMethodDecl>(DC))
743 return DC->getLexicalParent()->getLexicalParent();
745 return DC->getLexicalParent();
748 void Sema::PushDeclContext(Scope *S, DeclContext *DC) {
749 assert(getContainingDC(DC) == CurContext &&
751 CurContext = DC;
752 S->setEntity(DC);
765 void Sema::EnterDeclaratorContext(Scope *S, DeclContext *DC) {
790 CurContext = DC;
791 S->setEntity(DC);
894 Scope *Sema::getScopeForDeclContext(Scope *S, DeclContext *DC) {
895 DeclContext *TargetDC = DC->getPrimaryContext();
2629 Declarator Dc(DS, Declarator::MemberContext);
2630 TypeSourceInfo *TInfo = GetTypeForDeclarator(Dc, S);
2721 Declarator Dc(DS, Declarator::TypeNameContext);
2722 TypeSourceInfo *TInfo = GetTypeForDeclarator(Dc, S);
2969 bool Sema::DiagnoseClassNameShadow(DeclContext *DC,
2973 if (CXXRecordDecl *Record = dyn_cast<CXXRecordDecl>(DC))
3006 DeclContext *DC = CurContext;
3015 DC = computeDeclContext(D.getCXXScopeSpec(), EnteringContext);
3016 if (!DC) {
3027 bool IsDependentContext = DC->isDependentContext();
3030 RequireCompleteDeclContext(D.getCXXScopeSpec(), DC))
3033 if (isa<CXXRecordDecl>(DC)) {
3034 if (!cast<CXXRecordDecl>(DC)->hasDefinition()) {
3037 << Name << DC << D.getCXXScopeSpec().getRange();
3047 if (CurContext->Equals(DC))
3063 ContextRAII SavedContext(*this, DC);
3069 if (DiagnoseClassNameShadow(DC, NameInfo))
3111 LookupQualifiedName(Previous, DC);
3141 if (isa<TranslationUnitDecl>(DC)) {
3148 if (!Cur->Encloses(DC)) {
3157 << Name << cast<NamedDecl>(DC) << R;
3190 New = ActOnTypedefDeclarator(S, D, DC, R, TInfo, Previous, Redeclaration);
3192 New = ActOnFunctionDeclarator(S, D, DC, R, TInfo, Previous,
3196 New = ActOnVariableDeclarator(S, D, DC, R, TInfo, Previous,
3343 Sema::ActOnTypedefDeclarator(Scope* S, Declarator& D, DeclContext* DC,
3352 DC = CurContext;
3380 return ActOnTypedefNameDecl(S, DC, NewTD, Previous, Redeclaration);
3422 Sema::ActOnTypedefNameDecl(Scope *S, DeclContext *DC, TypedefNameDecl *NewTD,
3426 FilterLookupForScope(Previous, DC, S, /*ConsiderLinkage*/ false,
3463 /// \param DC the context in which the new declaration is being
3469 isOutOfScopePreviousDeclaration(NamedDecl *PrevDecl, DeclContext *DC,
3484 DeclContext *OuterContext = DC->getRedeclContext();
3559 Sema::ActOnVariableDeclarator(Scope *S, Declarator &D, DeclContext *DC,
3594 if (!DC->isRecord() && S->getFnParent() == 0) {
3612 NewVD = VarDecl::Create(Context, DC, D.getSourceRange().getBegin(),
3619 if (DC->isRecord() && !CurContext->isRecord()) {
3629 if (const CXXRecordDecl *RD = dyn_cast<CXXRecordDecl>(DC)) {
3678 NewVD = VarDecl::Create(Context, DC, D.getSourceRange().getBegin(),
3754 FilterLookupForScope(Previous, DC, S, NewVD->hasLinkage(),
3808 if (NewVD->getLinkage() == ExternalLinkage && !DC->isRecord())
4087 bool Sema::AddOverriddenMethods(CXXRecordDecl *DC, CXXMethodDecl *MD) {
4094 if (DC->lookupInBases(&FindOverriddenMethod, &Data, Paths)) {
4126 Sema::ActOnFunctionDeclarator(Scope *S, Declarator &D, DeclContext *DC,
4196 NewFD = FunctionDecl::Create(Context, DC, D.getSourceRange().getBegin(),
4205 FilterLookupForScope(Previous, DC, S, NewFD->hasLinkage(),
4216 if (!DC->isRecord() &&
4225 assert(DC->isRecord() &&
4233 cast<CXXRecordDecl>(DC),
4242 if (DC->isRecord()) {
4244 CXXRecordDecl *Record = cast<CXXRecordDecl>(DC);
4268 NewFD = FunctionDecl::Create(Context, DC, D.getSourceRange().getBegin(),
4275 if (!DC->isRecord()) {
4282 NewFD = CXXConversionDecl::Create(Context, cast<CXXRecordDecl>(DC),
4289 } else if (DC->isRecord()) {
4296 Name.getAsIdentifierInfo() == cast<CXXRecordDecl>(DC)->getIdentifier()){
4320 Context, cast<CXXRecordDecl>(DC),
4332 NewFD = FunctionDecl::Create(Context, DC, D.getSourceRange().getBegin(),
4381 FunctionTemplate = FunctionTemplateDecl::Create(Context, DC,
4499 FilterLookupForScope(Previous, DC, S, NewFD->hasLinkage(),
4513 if (isa<CXXMethodDecl>(NewFD) && DC == CurContext && IsFunctionDefinition) {
4680 (NewFD->getType()->isDependentType() || DC->isDependentContext())) {
4744 if (NewFD->isOverloadedOperator() && !DC->isRecord() &&
4759 DC && DC->isRecord() &&
4760 DC->isDependentContext())
4804 << Name << DC << D.getCXXScopeSpec().getRange();
4871 if (NewFD->getLinkage() == ExternalLinkage && !DC->isRecord())
6085 ParmVarDecl *Sema::BuildParmVarDeclForTypedef(DeclContext *DC,
6091 ParmVarDecl *Param = ParmVarDecl::Create(Context, DC, Loc, Loc, 0,
6143 ParmVarDecl *Sema::CheckParameter(DeclContext *DC, SourceLocation StartLoc,
6170 ParmVarDecl *New = ParmVarDecl::Create(Context, DC, StartLoc, NameLoc, Name,
6943 DeclContext *DC = CurContext;
6964 DC = computeDeclContext(SS, false);
6965 if (!DC) {
6970 DC = computeDeclContext(SS, true);
6971 if (!DC) {
6978 if (RequireCompleteDeclContext(SS, DC))
6981 SearchDC = DC;
6983 LookupQualifiedName(Previous, DC);
7003 << Kind << Name << DC << SS.getRange();
7053 if (getLangOptions().CPlusPlus && Name && DC && StdNamespace &&
7054 DC->Equals(getStdNamespace()) && Name->isStr("bad_alloc")) {
7499 DeclContext *DC = New->getDeclContext()->getRedeclContext();
7500 DC->makeDeclVisibleInContext(New, /* Recoverable = */ false);
7502 if (Scope *EnclosingScope = getScopeForDeclContext(S, DC))