Lines Matching refs:VDecl
12781 VarDecl *VDecl; member
12786 return VN.VDecl ? Diag << VN.VDecl : Diag << VN.Name; in operator <<()
12791 QualType Sema::deduceVarTypeFromInitializer(VarDecl *VDecl, in deduceVarTypeFromInitializer() argument
12796 bool IsInitCapture = !VDecl; in deduceVarTypeFromInitializer()
12797 assert((!VDecl || !VDecl->isInitCapture()) && in deduceVarTypeFromInitializer()
12800 VarDeclOrName VN{VDecl, Name}; in deduceVarTypeFromInitializer()
12816 assert(VDecl && "no init for init capture deduction?"); in deduceVarTypeFromInitializer()
12821 VDecl->hasExternalStorage() || in deduceVarTypeFromInitializer()
12822 VDecl->isStaticDataMember()) { in deduceVarTypeFromInitializer()
12823 Diag(VDecl->getLocation(), diag::err_auto_var_requires_init) in deduceVarTypeFromInitializer()
12824 << VDecl->getDeclName() << Type; in deduceVarTypeFromInitializer()
12838 assert(VDecl && "non-auto type for init capture deduction?"); in deduceVarTypeFromInitializer()
12839 InitializedEntity Entity = InitializedEntity::InitializeVariable(VDecl); in deduceVarTypeFromInitializer()
12841 VDecl->getLocation(), DirectInit, Init); in deduceVarTypeFromInitializer()
12896 if (VDecl && isa<DecompositionDecl>(VDecl) && in deduceVarTypeFromInitializer()
12909 DiagnoseAutoDeductionFailure(VDecl, DeduceInit); in deduceVarTypeFromInitializer()
12939 bool Sema::DeduceVariableDeclarationType(VarDecl *VDecl, bool DirectInit, in DeduceVariableDeclarationType() argument
12943 VDecl, VDecl->getDeclName(), VDecl->getType(), VDecl->getTypeSourceInfo(), in DeduceVariableDeclarationType()
12944 VDecl->getSourceRange(), DirectInit, Init); in DeduceVariableDeclarationType()
12946 VDecl->setInvalidDecl(); in DeduceVariableDeclarationType()
12950 VDecl->setType(DeducedType); in DeduceVariableDeclarationType()
12951 assert(VDecl->isLinkageValid()); in DeduceVariableDeclarationType()
12954 if (getLangOpts().ObjCAutoRefCount && ObjC().inferObjCARCLifetime(VDecl)) in DeduceVariableDeclarationType()
12955 VDecl->setInvalidDecl(); in DeduceVariableDeclarationType()
12958 deduceOpenCLAddressSpace(VDecl); in DeduceVariableDeclarationType()
12962 if (VarDecl *Old = VDecl->getPreviousDecl()) { in DeduceVariableDeclarationType()
12965 MergeVarDeclTypes(VDecl, Old, /*MergeTypeWithPrevious*/ false); in DeduceVariableDeclarationType()
12969 CheckVariableDeclarationType(VDecl); in DeduceVariableDeclarationType()
12970 return VDecl->isInvalidDecl(); in DeduceVariableDeclarationType()
13264 VarDecl *VDecl = dyn_cast<VarDecl>(RealDecl); in AddInitializerToDecl() local
13265 if (!VDecl) { in AddInitializerToDecl()
13272 if (VDecl->isInvalidDecl()) { in AddInitializerToDecl()
13273 ExprResult Res = CorrectDelayedTyposInExpr(Init, VDecl); in AddInitializerToDecl()
13280 VDecl->setInit(E); in AddInitializerToDecl()
13288 VDecl->setInvalidDecl(); in AddInitializerToDecl()
13293 if (VDecl->getType()->isUndeducedType()) { in AddInitializerToDecl()
13297 ExprResult Res = CorrectDelayedTyposInExpr(Init, VDecl); in AddInitializerToDecl()
13307 VDecl->setInit(Res.get()); in AddInitializerToDecl()
13312 if (DeduceVariableDeclarationType(VDecl, DirectInit, Init)) in AddInitializerToDecl()
13317 if (VDecl->hasAttr<DLLImportAttr>() && !VDecl->isStaticDataMember()) { in AddInitializerToDecl()
13318 Diag(VDecl->getLocation(), diag::err_attribute_dllimport_data_definition); in AddInitializerToDecl()
13319 VDecl->setInvalidDecl(); in AddInitializerToDecl()
13327 if (VDecl->isLocalVarDecl() && VDecl->hasExternalStorage()) { in AddInitializerToDecl()
13328 Diag(VDecl->getLocation(), diag::err_block_extern_cant_init); in AddInitializerToDecl()
13329 VDecl->setInvalidDecl(); in AddInitializerToDecl()
13333 if (!VDecl->getType()->isDependentType()) { in AddInitializerToDecl()
13337 QualType BaseDeclType = VDecl->getType(); in AddInitializerToDecl()
13340 if (RequireCompleteType(VDecl->getLocation(), BaseDeclType, in AddInitializerToDecl()
13347 if (RequireNonAbstractType(VDecl->getLocation(), VDecl->getType(), in AddInitializerToDecl()
13350 VDecl->setInvalidDecl(); in AddInitializerToDecl()
13356 !VDecl->isInvalidDecl() && VDecl->isThisDeclarationADefinition() && in AddInitializerToDecl()
13357 VDecl->getFormalLinkage() == Linkage::External && !VDecl->isInline() && in AddInitializerToDecl()
13358 !VDecl->isTemplated() && !isa<VarTemplateSpecializationDecl>(VDecl) && in AddInitializerToDecl()
13359 !VDecl->getInstantiatedFromStaticDataMember()) { in AddInitializerToDecl()
13360 Diag(VDecl->getLocation(), diag::err_extern_def_in_header_unit); in AddInitializerToDecl()
13361 VDecl->setInvalidDecl(); in AddInitializerToDecl()
13367 if (VarDecl *Def = VDecl->getDefinition()) in AddInitializerToDecl()
13368 if (Def != VDecl && in AddInitializerToDecl()
13369 (!VDecl->isStaticDataMember() || VDecl->isOutOfLine()) && in AddInitializerToDecl()
13370 !VDecl->isThisDeclarationADemotedDefinition() && in AddInitializerToDecl()
13371 checkVarDeclRedefinition(Def, VDecl)) in AddInitializerToDecl()
13387 if (VDecl->isStaticDataMember() && VDecl->getCanonicalDecl()->hasInit()) { in AddInitializerToDecl()
13389 << VDecl->getDeclName(); in AddInitializerToDecl()
13390 Diag(VDecl->getCanonicalDecl()->getInit()->getExprLoc(), in AddInitializerToDecl()
13396 if (VDecl->hasLocalStorage()) in AddInitializerToDecl()
13400 VDecl->setInvalidDecl(); in AddInitializerToDecl()
13407 if (VDecl->getType().getAddressSpace() == LangAS::opencl_local) { in AddInitializerToDecl()
13408 Diag(VDecl->getLocation(), diag::err_local_cant_init); in AddInitializerToDecl()
13409 VDecl->setInvalidDecl(); in AddInitializerToDecl()
13414 if (VDecl->hasAttr<LoaderUninitializedAttr>()) { in AddInitializerToDecl()
13415 Diag(VDecl->getLocation(), diag::err_loader_uninitialized_cant_init); in AddInitializerToDecl()
13416 VDecl->setInvalidDecl(); in AddInitializerToDecl()
13422 QualType DclT = VDecl->getType(), SavT = DclT; in AddInitializerToDecl()
13430 VDecl->setInvalidDecl(); in AddInitializerToDecl()
13439 if (!VDecl->isInvalidDecl()) { in AddInitializerToDecl()
13440 InitializedEntity Entity = InitializedEntity::InitializeVariable(VDecl); in AddInitializerToDecl()
13442 VDecl->getLocation(), DirectInit, Init); in AddInitializerToDecl()
13452 Args[Idx], VDecl, /*RecoverUncorrectedTypos=*/true, in AddInitializerToDecl()
13458 VDecl->setInvalidDecl(); in AddInitializerToDecl()
13463 if (VDecl->isInvalidDecl()) in AddInitializerToDecl()
13476 VDecl->setInit(RecoveryExpr.get()); in AddInitializerToDecl()
13484 if (isa<DecompositionDecl>(VDecl)) // Case 2) in AddInitializerToDecl()
13485 VDecl->setInvalidDecl(); in AddInitializerToDecl()
13493 QualType VDeclType = VDecl->getType(); in AddInitializerToDecl()
13500 Diag(VDecl->getLocation(), diag::err_typecheck_decl_incomplete_type) in AddInitializerToDecl()
13502 VDecl->setInvalidDecl(); in AddInitializerToDecl()
13512 if (!VDecl->hasLocalStorage() || VDecl->getType()->isRecordType() || in AddInitializerToDecl()
13513 VDecl->getType()->isReferenceType()) in AddInitializerToDecl()
13520 if (!VDecl->isInvalidDecl() && (DclT != SavT)) in AddInitializerToDecl()
13521 VDecl->setType(DclT); in AddInitializerToDecl()
13523 if (!VDecl->isInvalidDecl()) { in AddInitializerToDecl()
13524 checkUnsafeAssigns(VDecl->getLocation(), VDecl->getType(), Init); in AddInitializerToDecl()
13526 if (VDecl->hasAttr<BlocksAttr>()) in AddInitializerToDecl()
13527 ObjC().checkRetainCycles(VDecl, Init); in AddInitializerToDecl()
13537 if ((VDecl->getType().getObjCLifetime() == Qualifiers::OCL_Strong || in AddInitializerToDecl()
13538 VDecl->getType().isNonWeakInMRRWithObjCWeak(Context)) && in AddInitializerToDecl()
13556 ActOnFinishFullExpr(Init, VDecl->getLocation(), in AddInitializerToDecl()
13557 /*DiscardedValue*/ false, VDecl->isConstexpr()); in AddInitializerToDecl()
13559 VDecl->setInvalidDecl(); in AddInitializerToDecl()
13565 VDecl->setInit(Init); in AddInitializerToDecl()
13567 if (VDecl->isLocalVarDecl()) { in AddInitializerToDecl()
13569 if (VDecl->isInvalidDecl()) { in AddInitializerToDecl()
13574 } else if (VDecl->getType().getAddressSpace() == LangAS::opencl_constant) { in AddInitializerToDecl()
13583 } else if (VDecl->getStorageClass() == SC_Static) { in AddInitializerToDecl()
13590 } else if (!getLangOpts().C99 && VDecl->getType()->isAggregateType() && in AddInitializerToDecl()
13597 if (VDecl->hasLocalStorage()) in AddInitializerToDecl()
13599 } else if (VDecl->isStaticDataMember() && !VDecl->isInline() && in AddInitializerToDecl()
13600 VDecl->getLexicalDeclContext()->isRecord()) { in AddInitializerToDecl()
13628 } else if (VDecl->isConstexpr()) { in AddInitializerToDecl()
13632 Diag(VDecl->getLocation(), diag::err_in_class_initializer_non_const) in AddInitializerToDecl()
13634 VDecl->setInvalidDecl(); in AddInitializerToDecl()
13643 Diag(VDecl->getLocation(), diag::err_in_class_initializer_volatile); in AddInitializerToDecl()
13661 VDecl->setInvalidDecl(); in AddInitializerToDecl()
13669 Diag(VDecl->getLocation(), in AddInitializerToDecl()
13672 Diag(VDecl->getBeginLoc(), in AddInitializerToDecl()
13674 << FixItHint::CreateInsertion(VDecl->getBeginLoc(), "constexpr "); in AddInitializerToDecl()
13676 Diag(VDecl->getLocation(), diag::ext_in_class_initializer_float_type) in AddInitializerToDecl()
13682 VDecl->setInvalidDecl(); in AddInitializerToDecl()
13688 Diag(VDecl->getLocation(), diag::err_in_class_initializer_literal_type) in AddInitializerToDecl()
13690 << FixItHint::CreateInsertion(VDecl->getBeginLoc(), "constexpr "); in AddInitializerToDecl()
13691 VDecl->setConstexpr(true); in AddInitializerToDecl()
13694 Diag(VDecl->getLocation(), diag::err_in_class_initializer_bad_type) in AddInitializerToDecl()
13696 VDecl->setInvalidDecl(); in AddInitializerToDecl()
13698 } else if (VDecl->isFileVarDecl()) { in AddInitializerToDecl()
13706 if (VDecl->getStorageClass() == SC_Extern && in AddInitializerToDecl()
13707 ((!getLangOpts().CPlusPlus && !VDecl->hasAttr<SelectAnyAttr>()) || in AddInitializerToDecl()
13708 !Context.getBaseElementType(VDecl->getType()).isConstQualified()) && in AddInitializerToDecl()
13709 !(getLangOpts().CPlusPlus && VDecl->isExternC()) && in AddInitializerToDecl()
13710 !isTemplateInstantiation(VDecl->getTemplateSpecializationKind())) in AddInitializerToDecl()
13711 Diag(VDecl->getLocation(), diag::warn_extern_init); in AddInitializerToDecl()
13717 getLangOpts().CPlusPlus && VDecl->getType().isConstQualified() && in AddInitializerToDecl()
13718 VDecl->hasAttr<DLLExportAttr>() && VDecl->getDefinition()) in AddInitializerToDecl()
13719 VDecl->setStorageClass(SC_Extern); in AddInitializerToDecl()
13723 if (!getLangOpts().CPlusPlus && !VDecl->isInvalidDecl() && in AddInitializerToDecl()
13724 !VDecl->isConstexpr()) in AddInitializerToDecl()
13750 VDecl->setInitStyle(IsParenListInit ? VarDecl::ParenListInit in AddInitializerToDecl()
13754 VDecl->setInitStyle(VarDecl::ListInit); in AddInitializerToDecl()
13759 VDecl->isFileVarDecl()) in AddInitializerToDecl()
13760 DeclsToCheckForDeferredDiags.insert(VDecl); in AddInitializerToDecl()
13761 CheckCompleteVariableDeclaration(VDecl); in AddInitializerToDecl()