Lines Matching refs:VD
676 if (const auto *VD = dyn_cast<VarDecl>(DRE->getDecl())) { in ImpCastExprToType() local
677 if (VD->getStorageClass() == SC_Register) { in ImpCastExprToType()
746 if (const VarDecl *VD = dyn_cast<VarDecl>(D)) { in ShouldRemoveFromUnused() local
752 if (VD->isReferenced() && in ShouldRemoveFromUnused()
753 VD->mightBeUsableInConstantExpressions(SemaRef->Context)) in ShouldRemoveFromUnused()
756 if (VarTemplateDecl *Template = VD->getDescribedVarTemplate()) in ShouldRemoveFromUnused()
765 const VarDecl *DeclToCheck = VD->getDefinition(); in ShouldRemoveFromUnused()
771 DeclToCheck = VD->getMostRecentDecl(); in ShouldRemoveFromUnused()
772 if (DeclToCheck != VD) in ShouldRemoveFromUnused()
787 bool Sema::isExternalWithNoLinkageType(ValueDecl *VD) { in isExternalWithNoLinkageType() argument
791 return getLangOpts().CPlusPlus && VD->hasExternalFormalLinkage() && in isExternalWithNoLinkageType()
792 !isExternalFormalLinkage(VD->getType()->getLinkage()) && in isExternalWithNoLinkageType()
793 !isFunctionOrVarDeclExternC(VD); in isExternalWithNoLinkageType()
830 auto *VD = cast<VarDecl>(ND); in getUndefinedButUsed() local
831 if (VD->hasDefinition() != VarDecl::DeclarationOnly) in getUndefinedButUsed()
833 if (VD->isExternallyVisible() && in getUndefinedButUsed()
834 !isExternalWithNoLinkageType(VD) && in getUndefinedButUsed()
835 !VD->getMostRecentDecl()->isInline() && in getUndefinedButUsed()
836 !VD->hasAttr<ExcludeFromExplicitInstantiationAttr>()) in getUndefinedButUsed()
841 if (VD->isKnownToBeDefined()) in getUndefinedButUsed()
860 ValueDecl *VD = cast<ValueDecl>(Undef.first); in checkUndefinedButUsed() local
863 if (S.isExternalWithNoLinkageType(VD)) { in checkUndefinedButUsed()
873 S.Diag(VD->getLocation(), isExternallyVisible(VD->getType()->getLinkage()) in checkUndefinedButUsed()
876 << isa<VarDecl>(VD) << VD; in checkUndefinedButUsed()
877 } else if (!VD->isExternallyVisible()) { in checkUndefinedButUsed()
882 if (const auto *BaseD = dyn_cast<FunctionDecl>(VD)) { in checkUndefinedButUsed()
894 S.Diag(VD->getLocation(), diag::warn_undefined_internal) in checkUndefinedButUsed()
895 << isa<VarDecl>(VD) << VD; in checkUndefinedButUsed()
896 } else if (auto *FD = dyn_cast<FunctionDecl>(VD)) { in checkUndefinedButUsed()
901 S.Diag(VD->getLocation(), diag::warn_undefined_inline) << VD; in checkUndefinedButUsed()
903 assert(cast<VarDecl>(VD)->getMostRecentDecl()->isInline() && in checkUndefinedButUsed()
905 S.Diag(VD->getLocation(), diag::err_undefined_inline_var) << VD; in checkUndefinedButUsed()
1272 VarDecl *VD = (*T)->getActingDefinition(); in ActOnEndOfTranslationUnit() local
1277 if (!VD || VD->isInvalidDecl() || !Seen.insert(VD).second) in ActOnEndOfTranslationUnit()
1281 = Context.getAsIncompleteArrayType(VD->getType())) { in ActOnEndOfTranslationUnit()
1283 Diag(VD->getLocation(), diag::warn_tentative_incomplete_array); in ActOnEndOfTranslationUnit()
1287 VD->setType(T); in ActOnEndOfTranslationUnit()
1288 } else if (RequireCompleteType(VD->getLocation(), VD->getType(), in ActOnEndOfTranslationUnit()
1290 VD->setInvalidDecl(); in ActOnEndOfTranslationUnit()
1293 CheckCompleteVariableDeclaration(VD); in ActOnEndOfTranslationUnit()
1296 if (!VD->isInvalidDecl()) in ActOnEndOfTranslationUnit()
1297 Consumer.CompleteTentativeDefinition(VD); in ActOnEndOfTranslationUnit()
1673 void checkVar(VarDecl *VD) { in checkVar() argument
1674 assert(VD->isFileVarDecl() && in checkVar()
1676 if (auto *Init = VD->getInit()) { in checkVar()
1677 auto DevTy = OMPDeclareTargetDeclAttr::getDeviceType(VD); in checkVar()
2111 static void checkEscapingByref(VarDecl *VD, Sema &S) { in checkEscapingByref() argument
2112 QualType T = VD->getType(); in checkEscapingByref()
2115 SourceLocation Loc = VD->getLocation(); in checkEscapingByref()
2117 new (S.Context) DeclRefExpr(S.Context, VD, false, T, VK_LValue, Loc); in checkEscapingByref()
2126 IE, Sema::NamedReturnInfo{VD, Sema::NamedReturnInfo::MoveEligible}, in checkEscapingByref()
2133 S.Context.setBlockVarCopyInit(VD, Init, S.canThrow(Init)); in checkEscapingByref()
2150 VarDecl *VD = BC.getVariable(); in markEscapingByrefs() local
2151 if (VD->hasAttr<BlocksAttr>()) { in markEscapingByrefs()
2156 VD->setEscapingByref(); in markEscapingByrefs()
2170 for (VarDecl *VD : FSI.ByrefBlockVars) { in markEscapingByrefs()
2172 if (!VD->isEscapingByref()) in markEscapingByrefs()
2178 if (VD->getType()->isStructureOrClassType()) in markEscapingByrefs()
2179 checkEscapingByref(VD, S); in markEscapingByrefs()