Lines Matching defs:VDecl
12915 VarDecl *VDecl;
12920 return VN.VDecl ? Diag << VN.VDecl : Diag << VN.Name;
12925 QualType Sema::deduceVarTypeFromInitializer(VarDecl *VDecl,
12930 bool IsInitCapture = !VDecl;
12931 assert((!VDecl || !VDecl->isInitCapture()) &&
12934 VarDeclOrName VN{VDecl, Name};
12950 assert(VDecl && "no init for init capture deduction?");
12955 VDecl->hasExternalStorage() ||
12956 VDecl->isStaticDataMember()) {
12957 Diag(VDecl->getLocation(), diag::err_auto_var_requires_init)
12958 << VDecl->getDeclName() << Type;
12972 assert(VDecl && "non-auto type for init capture deduction?");
12973 InitializedEntity Entity = InitializedEntity::InitializeVariable(VDecl);
12975 VDecl->getLocation(), DirectInit, Init);
13030 if (VDecl && isa<DecompositionDecl>(VDecl) &&
13043 DiagnoseAutoDeductionFailure(VDecl, DeduceInit);
13073 bool Sema::DeduceVariableDeclarationType(VarDecl *VDecl, bool DirectInit,
13077 VDecl, VDecl->getDeclName(), VDecl->getType(), VDecl->getTypeSourceInfo(),
13078 VDecl->getSourceRange(), DirectInit, Init);
13080 VDecl->setInvalidDecl();
13084 VDecl->setType(DeducedType);
13085 assert(VDecl->isLinkageValid());
13088 if (getLangOpts().ObjCAutoRefCount && ObjC().inferObjCARCLifetime(VDecl))
13089 VDecl->setInvalidDecl();
13092 deduceOpenCLAddressSpace(VDecl);
13096 if (VarDecl *Old = VDecl->getPreviousDecl()) {
13099 MergeVarDeclTypes(VDecl, Old, /*MergeTypeWithPrevious*/ false);
13103 CheckVariableDeclarationType(VDecl);
13104 return VDecl->isInvalidDecl();
13398 VarDecl *VDecl = dyn_cast<VarDecl>(RealDecl);
13399 if (!VDecl) {
13406 if (VDecl->isInvalidDecl()) {
13407 ExprResult Res = CorrectDelayedTyposInExpr(Init, VDecl);
13414 VDecl->setInit(E);
13421 VDecl->setInvalidDecl();
13426 if (VDecl->getType()->isUndeducedType()) {
13430 ExprResult Res = CorrectDelayedTyposInExpr(Init, VDecl);
13440 VDecl->setInit(Res.get());
13445 if (DeduceVariableDeclarationType(VDecl, DirectInit, Init))
13450 if (VDecl->hasAttr<DLLImportAttr>() && !VDecl->isStaticDataMember()) {
13451 Diag(VDecl->getLocation(), diag::err_attribute_dllimport_data_definition);
13452 VDecl->setInvalidDecl();
13460 if (VDecl->isLocalVarDecl() && VDecl->hasExternalStorage()) {
13461 Diag(VDecl->getLocation(), diag::err_block_extern_cant_init);
13462 VDecl->setInvalidDecl();
13466 if (!VDecl->getType()->isDependentType()) {
13470 QualType BaseDeclType = VDecl->getType();
13473 if (RequireCompleteType(VDecl->getLocation(), BaseDeclType,
13480 if (RequireNonAbstractType(VDecl->getLocation(), VDecl->getType(),
13483 VDecl->setInvalidDecl();
13489 !VDecl->isInvalidDecl() && VDecl->isThisDeclarationADefinition() &&
13490 VDecl->getFormalLinkage() == Linkage::External && !VDecl->isInline() &&
13491 !VDecl->isTemplated() && !isa<VarTemplateSpecializationDecl>(VDecl) &&
13492 !VDecl->getInstantiatedFromStaticDataMember()) {
13493 Diag(VDecl->getLocation(), diag::err_extern_def_in_header_unit);
13494 VDecl->setInvalidDecl();
13500 if (VarDecl *Def = VDecl->getDefinition())
13501 if (Def != VDecl &&
13502 (!VDecl->isStaticDataMember() || VDecl->isOutOfLine()) &&
13503 !VDecl->isThisDeclarationADemotedDefinition() &&
13504 checkVarDeclRedefinition(Def, VDecl))
13520 if (VDecl->isStaticDataMember() && VDecl->getCanonicalDecl()->hasInit()) {
13522 << VDecl->getDeclName();
13523 Diag(VDecl->getCanonicalDecl()->getInit()->getExprLoc(),
13529 if (VDecl->hasLocalStorage())
13533 VDecl->setInvalidDecl();
13540 if (VDecl->getType().getAddressSpace() == LangAS::opencl_local) {
13541 Diag(VDecl->getLocation(), diag::err_local_cant_init);
13542 VDecl->setInvalidDecl();
13547 if (VDecl->hasAttr<LoaderUninitializedAttr>()) {
13548 Diag(VDecl->getLocation(), diag::err_loader_uninitialized_cant_init);
13549 VDecl->setInvalidDecl();
13555 QualType DclT = VDecl->getType(), SavT = DclT;
13563 VDecl->setInvalidDecl();
13572 if (!VDecl->isInvalidDecl()) {
13573 InitializedEntity Entity = InitializedEntity::InitializeVariable(VDecl);
13575 VDecl->getLocation(), DirectInit, Init);
13585 Args[Idx], VDecl, /*RecoverUncorrectedTypos=*/true,
13591 VDecl->setInvalidDecl();
13596 if (VDecl->isInvalidDecl())
13609 VDecl->setInit(RecoveryExpr.get());
13617 if (isa<DecompositionDecl>(VDecl)) // Case 2)
13618 VDecl->setInvalidDecl();
13626 QualType VDeclType = VDecl->getType();
13633 Diag(VDecl->getLocation(), diag::err_typecheck_decl_incomplete_type)
13635 VDecl->setInvalidDecl();
13645 if (!VDecl->hasLocalStorage() || VDecl->getType()->isRecordType() ||
13646 VDecl->getType()->isReferenceType())
13653 if (!VDecl->isInvalidDecl() && (DclT != SavT))
13654 VDecl->setType(DclT);
13656 if (!VDecl->isInvalidDecl()) {
13657 checkUnsafeAssigns(VDecl->getLocation(), VDecl->getType(), Init);
13659 if (VDecl->hasAttr<BlocksAttr>())
13660 ObjC().checkRetainCycles(VDecl, Init);
13670 if ((VDecl->getType().getObjCLifetime() == Qualifiers::OCL_Strong ||
13671 VDecl->getType().isNonWeakInMRRWithObjCWeak(Context)) &&
13689 ActOnFinishFullExpr(Init, VDecl->getLocation(),
13690 /*DiscardedValue*/ false, VDecl->isConstexpr());
13692 VDecl->setInvalidDecl();
13698 VDecl->setInit(Init);
13700 if (VDecl->isLocalVarDecl()) {
13702 if (VDecl->isInvalidDecl()) {
13707 } else if (VDecl->getType().getAddressSpace() == LangAS::opencl_constant) {
13716 } else if (VDecl->getStorageClass() == SC_Static) {
13723 } else if (!getLangOpts().C99 && VDecl->getType()->isAggregateType() &&
13730 if (VDecl->hasLocalStorage())
13732 } else if (VDecl->isStaticDataMember() && !VDecl->isInline() &&
13733 VDecl->getLexicalDeclContext()->isRecord()) {
13761 } else if (VDecl->isConstexpr()) {
13765 Diag(VDecl->getLocation(), diag::err_in_class_initializer_non_const)
13767 VDecl->setInvalidDecl();
13776 Diag(VDecl->getLocation(), diag::err_in_class_initializer_volatile);
13794 VDecl->setInvalidDecl();
13802 Diag(VDecl->getLocation(),
13805 Diag(VDecl->getBeginLoc(),
13807 << FixItHint::CreateInsertion(VDecl->getBeginLoc(), "constexpr ");
13809 Diag(VDecl->getLocation(), diag::ext_in_class_initializer_float_type)
13815 VDecl->setInvalidDecl();
13821 Diag(VDecl->getLocation(), diag::err_in_class_initializer_literal_type)
13823 << FixItHint::CreateInsertion(VDecl->getBeginLoc(), "constexpr ");
13824 VDecl->setConstexpr(true);
13827 Diag(VDecl->getLocation(), diag::err_in_class_initializer_bad_type)
13829 VDecl->setInvalidDecl();
13831 } else if (VDecl->isFileVarDecl()) {
13839 if (VDecl->getStorageClass() == SC_Extern &&
13840 ((!getLangOpts().CPlusPlus && !VDecl->hasAttr<SelectAnyAttr>()) ||
13841 !Context.getBaseElementType(VDecl->getType()).isConstQualified()) &&
13842 !(getLangOpts().CPlusPlus && VDecl->isExternC()) &&
13843 !isTemplateInstantiation(VDecl->getTemplateSpecializationKind()))
13844 Diag(VDecl->getLocation(), diag::warn_extern_init);
13850 getLangOpts().CPlusPlus && VDecl->getType().isConstQualified() &&
13851 VDecl->hasAttr<DLLExportAttr>() && VDecl->getDefinition())
13852 VDecl->setStorageClass(SC_Extern);
13856 if (!getLangOpts().CPlusPlus && !VDecl->isInvalidDecl() &&
13857 !VDecl->isConstexpr())
13883 VDecl->setInitStyle(IsParenListInit ? VarDecl::ParenListInit
13887 VDecl->setInitStyle(VarDecl::ListInit);
13892 VDecl->isFileVarDecl())
13893 DeclsToCheckForDeferredDiags.insert(VDecl);
13894 CheckCompleteVariableDeclaration(VDecl);