Lines Matching refs:NewVD

3100     auto *NewVD = cast<VarDecl>(New);  in mergeDeclAttributes()  local
3106 (NewVD->hasInit() || NewVD->isThisDeclarationADefinition())) in mergeDeclAttributes()
3107 InitDecl = NewVD; in mergeDeclAttributes()
3109 if (InitDecl == NewVD) { in mergeDeclAttributes()
3114 diagnoseMissingConstinit(*this, NewVD, OldConstInit, in mergeDeclAttributes()
3120 if (InitDecl && InitDecl != NewVD) { in mergeDeclAttributes()
3123 NewVD->dropAttr<ConstInitAttr>(); in mergeDeclAttributes()
4430 static bool mergeTypeWithPrevious(Sema &S, VarDecl *NewVD, VarDecl *OldVD, in mergeTypeWithPrevious() argument
4448 return NewVD->isPreviousDeclInSameBlockScope() || in mergeTypeWithPrevious()
4450 !NewVD->getLexicalDeclContext()->isFunctionOrMethod()); in mergeTypeWithPrevious()
4455 OldVD->getLexicalDeclContext() == NewVD->getLexicalDeclContext(); in mergeTypeWithPrevious()
5703 if (VarDecl *NewVD = dyn_cast<VarDecl>(Anon)) { in BuildAnonymousStructOrUnion() local
5704 if (getLangOpts().CPlusPlus && NewVD->isStaticLocal()) { in BuildAnonymousStructOrUnion()
5708 getCurrentMangleNumberContext(NewVD->getDeclContext()); in BuildAnonymousStructOrUnion()
5711 NewVD, MCtx->getManglingNumber( in BuildAnonymousStructOrUnion()
5712 NewVD, getMSManglingNumber(getLangOpts(), S))); in BuildAnonymousStructOrUnion()
5713 Context.setStaticLocalNumber(NewVD, MCtx->getStaticLocalNumber(NewVD)); in BuildAnonymousStructOrUnion()
7221 static bool diagnoseOpenCLTypes(Sema &Se, VarDecl *NewVD) { in diagnoseOpenCLTypes() argument
7222 DeclContext *DC = NewVD->getDeclContext(); in diagnoseOpenCLTypes()
7223 QualType R = NewVD->getType(); in diagnoseOpenCLTypes()
7229 Se.Diag(NewVD->getLocation(), in diagnoseOpenCLTypes()
7232 NewVD->setInvalidDecl(); in diagnoseOpenCLTypes()
7241 if (NewVD->hasGlobalStorage() && !NewVD->isStaticLocal()) { in diagnoseOpenCLTypes()
7243 Se.Diag(NewVD->getLocation(), in diagnoseOpenCLTypes()
7246 NewVD->setInvalidDecl(); in diagnoseOpenCLTypes()
7259 Se.Diag(NewVD->getLocation(), diag::err_opencl_function_pointer) in diagnoseOpenCLTypes()
7261 NewVD->setInvalidDecl(); in diagnoseOpenCLTypes()
7273 Se.Diag(NewVD->getLocation(), diag::err_opencl_half_declaration) << R; in diagnoseOpenCLTypes()
7274 NewVD->setInvalidDecl(); in diagnoseOpenCLTypes()
7284 Se.Diag(NewVD->getBeginLoc(), diag::err_event_t_addr_space_qual); in diagnoseOpenCLTypes()
7285 NewVD->setInvalidDecl(); in diagnoseOpenCLTypes()
7296 Se.Diag(NewVD->getLocation(), diag::err_wrong_sampler_addressspace); in diagnoseOpenCLTypes()
7297 NewVD->setInvalidDecl(); in diagnoseOpenCLTypes()
7306 Se.Diag(NewVD->getLocation(), diag::err_opencl_nonconst_global_sampler); in diagnoseOpenCLTypes()
7307 NewVD->setInvalidDecl(); in diagnoseOpenCLTypes()
7309 if (NewVD->isInvalidDecl()) in diagnoseOpenCLTypes()
7453 VarDecl *NewVD = nullptr; in ActOnVariableDeclarator() local
7457 NewVD = VarDecl::Create(Context, DC, D.getBeginLoc(), D.getIdentifierLoc(), in ActOnVariableDeclarator()
7461 ParsingInitForAutoVars.insert(NewVD); in ActOnVariableDeclarator()
7464 NewVD->setInvalidDecl(); in ActOnVariableDeclarator()
7466 if (NewVD->getType().hasNonTrivialToPrimitiveDestructCUnion() && in ActOnVariableDeclarator()
7467 NewVD->hasLocalStorage()) in ActOnVariableDeclarator()
7468 checkNonTrivialCUnion(NewVD->getType(), NewVD->getLocation(), in ActOnVariableDeclarator()
7630 NewVD = cast<VarDecl>(Res.get()); in ActOnVariableDeclarator()
7633 NewVD = DecompositionDecl::Create(Context, DC, D.getBeginLoc(), in ActOnVariableDeclarator()
7637 NewVD = VarDecl::Create(Context, DC, D.getBeginLoc(), in ActOnVariableDeclarator()
7644 TemplateParams, NewVD); in ActOnVariableDeclarator()
7645 NewVD->setDescribedVarTemplate(NewTemplate); in ActOnVariableDeclarator()
7651 ParsingInitForAutoVars.insert(NewVD); in ActOnVariableDeclarator()
7654 NewVD->setInvalidDecl(); in ActOnVariableDeclarator()
7659 SetNestedNameSpecifier(*this, NewVD, D); in ActOnVariableDeclarator()
7668 NewVD->setTemplateParameterListsInfo( in ActOnVariableDeclarator()
7685 NewVD->setInlineSpecified(); in ActOnVariableDeclarator()
7691 NewVD->setLexicalDeclContext(CurContext); in ActOnVariableDeclarator()
7700 NewVD->setLocalExternDecl(); in ActOnVariableDeclarator()
7711 if (NewVD->hasLocalStorage() && in ActOnVariableDeclarator()
7728 NewVD->setTSCSpec(TSCS); in ActOnVariableDeclarator()
7733 NewVD->setTSCSpec(TSCS); in ActOnVariableDeclarator()
7747 NewVD->setConstexpr(true); in ActOnVariableDeclarator()
7751 if (NewVD->isStaticDataMember() && in ActOnVariableDeclarator()
7754 NewVD->setImplicitlyInline(); in ActOnVariableDeclarator()
7758 if (!NewVD->hasGlobalStorage()) in ActOnVariableDeclarator()
7762 NewVD->addAttr( in ActOnVariableDeclarator()
7778 !NewVD->getType().isConstQualified()) { in ActOnVariableDeclarator()
7789 Diag(NewVD->getLocation(), diag::err_module_private_specialization) in ActOnVariableDeclarator()
7794 Diag(NewVD->getLocation(), diag::err_module_private_specialization) in ActOnVariableDeclarator()
7797 else if (NewVD->hasLocalStorage()) in ActOnVariableDeclarator()
7798 Diag(NewVD->getLocation(), diag::err_module_private_local) in ActOnVariableDeclarator()
7799 << 0 << NewVD in ActOnVariableDeclarator()
7804 NewVD->setModulePrivate(); in ActOnVariableDeclarator()
7813 deduceOpenCLAddressSpace(NewVD); in ActOnVariableDeclarator()
7821 NewVD->setInvalidDecl(); in ActOnVariableDeclarator()
7828 if (const auto *ATy = dyn_cast<ArrayType>(NewVD->getType())) { in ActOnVariableDeclarator()
7830 !NewVD->hasLocalStorage()) { in ActOnVariableDeclarator()
7832 NewVD->getType(), Context.getLangASForBuiltinAddressSpace(1)); in ActOnVariableDeclarator()
7833 NewVD->setType(Type); in ActOnVariableDeclarator()
7838 ProcessDeclAttributes(S, NewVD, D); in ActOnVariableDeclarator()
7846 copyAttrFromTypedefToDecl<AllocSizeAttr>(*this, NewVD, TT); in ActOnVariableDeclarator()
7851 ((getLangOpts().CUDA && DeclAttrsMatchCUDAMode(getLangOpts(), NewVD)) || in ActOnVariableDeclarator()
7853 OMPDeclareTargetDeclAttr::isDeclareTargetDeclaration(NewVD)))) in ActOnVariableDeclarator()
7864 (NewVD->hasAttr<CUDASharedAttr>() || in ActOnVariableDeclarator()
7865 NewVD->hasAttr<CUDAConstantAttr>())) { in ActOnVariableDeclarator()
7866 NewVD->setStorageClass(SC_Static); in ActOnVariableDeclarator()
7873 assert(!NewVD->hasAttr<DLLImportAttr>() || in ActOnVariableDeclarator()
7874 NewVD->getAttr<DLLImportAttr>()->isInherited() || in ActOnVariableDeclarator()
7875 NewVD->isStaticDataMember() || NewVD->getStorageClass() != SC_None); in ActOnVariableDeclarator()
7879 if (getLangOpts().ObjCAutoRefCount && ObjC().inferObjCARCLifetime(NewVD)) in ActOnVariableDeclarator()
7880 NewVD->setInvalidDecl(); in ActOnVariableDeclarator()
7906 if (DeclAttrsMatchCUDAMode(getLangOpts(), NewVD)) { in ActOnVariableDeclarator()
7922 NewVD->setInvalidDecl(true); in ActOnVariableDeclarator()
7926 NewVD->addAttr(AsmLabelAttr::Create(Context, Label, in ActOnVariableDeclarator()
7931 ExtnameUndeclaredIdentifiers.find(NewVD->getIdentifier()); in ActOnVariableDeclarator()
7933 if (isDeclExternC(NewVD)) { in ActOnVariableDeclarator()
7934 NewVD->addAttr(I->second); in ActOnVariableDeclarator()
7937 Diag(NewVD->getLocation(), diag::warn_redefine_extname_not_applied) in ActOnVariableDeclarator()
7938 << /*Variable*/1 << NewVD; in ActOnVariableDeclarator()
7944 ? getShadowedDeclaration(NewVD, Previous) in ActOnVariableDeclarator()
7950 FilterLookupForScope(Previous, OriginalDC, S, shouldConsiderLinkage(NewVD), in ActOnVariableDeclarator()
7958 NewVD->isLocalVarDecl() && NewVD->hasExternalStorage()) in ActOnVariableDeclarator()
7959 NewVD->setPreviousDeclInSameBlockScope( in ActOnVariableDeclarator()
7964 D.setRedeclaration(CheckVariableDeclaration(NewVD, Previous)); in ActOnVariableDeclarator()
7968 !NewVD->isInvalidDecl() && CheckMemberSpecialization(NewVD, Previous)) in ActOnVariableDeclarator()
7969 NewVD->setInvalidDecl(); in ActOnVariableDeclarator()
7978 Diag(NewVD->getLocation(), diag::err_nonstatic_member_out_of_line) in ActOnVariableDeclarator()
7981 NewVD->setInvalidDecl(); in ActOnVariableDeclarator()
7989 NewVD->setInvalidDecl(); in ActOnVariableDeclarator()
7993 D.setRedeclaration(CheckVariableDeclaration(NewVD, Previous)); in ActOnVariableDeclarator()
7999 if (NewVD->getType()->isWebAssemblyTableType() && NewVD->isInvalidDecl()) in ActOnVariableDeclarator()
8004 NewVD->getPreviousDecl() in ActOnVariableDeclarator()
8005 ? NewVD->getPreviousDecl()->getDescribedVarTemplate() in ActOnVariableDeclarator()
8019 NewVD->setInvalidDecl(); in ActOnVariableDeclarator()
8031 CheckShadow(NewVD, ShadowedDecl, Previous); in ActOnVariableDeclarator()
8033 ProcessPragmaWeak(S, NewVD); in ActOnVariableDeclarator()
8037 if (NewVD->isFirstDecl() && !NewVD->isInvalidDecl() && in ActOnVariableDeclarator()
8038 isIncompleteDeclExternC(*this, NewVD)) in ActOnVariableDeclarator()
8039 RegisterLocallyScopedExternCDecl(NewVD, S); in ActOnVariableDeclarator()
8041 if (getLangOpts().CPlusPlus && NewVD->isStaticLocal()) { in ActOnVariableDeclarator()
8045 getCurrentMangleNumberContext(NewVD->getDeclContext()); in ActOnVariableDeclarator()
8048 NewVD, MCtx->getManglingNumber( in ActOnVariableDeclarator()
8049 NewVD, getMSManglingNumber(getLangOpts(), S))); in ActOnVariableDeclarator()
8050 Context.setStaticLocalNumber(NewVD, MCtx->getStaticLocalNumber(NewVD)); in ActOnVariableDeclarator()
8056 NewVD->getDeclContext()->getRedeclContext()->isTranslationUnit() && in ActOnVariableDeclarator()
8057 !getLangOpts().Freestanding && !NewVD->getDescribedVarTemplate()) { in ActOnVariableDeclarator()
8066 else if (NewVD->hasExternalFormalLinkage()) in ActOnVariableDeclarator()
8072 checkDLLAttributeRedeclaration(*this, Prev, NewVD, IsMemberSpecialization, in ActOnVariableDeclarator()
8077 if (NewVD->isInvalidDecl()) in ActOnVariableDeclarator()
8083 if (IsMemberSpecialization && !NewVD->isInvalidDecl()) in ActOnVariableDeclarator()
8084 CompleteMemberSpecialization(NewVD, Previous); in ActOnVariableDeclarator()
8086 emitReadOnlyPlacementAttrWarning(*this, NewVD); in ActOnVariableDeclarator()
8088 return NewVD; in ActOnVariableDeclarator()
8503 void Sema::CheckVariableDeclarationType(VarDecl *NewVD) { in CheckVariableDeclarationType() argument
8505 if (NewVD->isInvalidDecl()) in CheckVariableDeclarationType()
8508 QualType T = NewVD->getType(); in CheckVariableDeclarationType()
8514 if (NewVD->hasAttrs()) in CheckVariableDeclarationType()
8515 CheckAlignasUnderalignment(NewVD); in CheckVariableDeclarationType()
8518 Diag(NewVD->getLocation(), diag::err_statically_allocated_object) in CheckVariableDeclarationType()
8519 << FixItHint::CreateInsertion(NewVD->getLocation(), "*"); in CheckVariableDeclarationType()
8521 NewVD->setType(T); in CheckVariableDeclarationType()
8528 if (!getLangOpts().OpenCL && NewVD->hasLocalStorage() && in CheckVariableDeclarationType()
8530 Diag(NewVD->getLocation(), diag::err_as_qualified_auto_decl) << 0; in CheckVariableDeclarationType()
8531 NewVD->setInvalidDecl(); in CheckVariableDeclarationType()
8540 NewVD->isStaticLocal()) { in CheckVariableDeclarationType()
8541 Diag(NewVD->getLocation(), diag::err_static_function_scope); in CheckVariableDeclarationType()
8542 NewVD->setInvalidDecl(); in CheckVariableDeclarationType()
8547 if (!diagnoseOpenCLTypes(*this, NewVD)) in CheckVariableDeclarationType()
8551 if (NewVD->hasAttr<BlocksAttr>()) { in CheckVariableDeclarationType()
8552 Diag(NewVD->getLocation(), diag::err_opencl_block_storage_type); in CheckVariableDeclarationType()
8560 Diag(NewVD->getLocation(), diag::err_opencl_invalid_block_declaration) in CheckVariableDeclarationType()
8562 NewVD->setInvalidDecl(); in CheckVariableDeclarationType()
8565 if (NewVD->hasExternalStorage()) { in CheckVariableDeclarationType()
8566 Diag(NewVD->getLocation(), diag::err_opencl_extern_block_declaration); in CheckVariableDeclarationType()
8567 NewVD->setInvalidDecl(); in CheckVariableDeclarationType()
8573 if (NewVD->isFileVarDecl() || NewVD->isStaticLocal() || in CheckVariableDeclarationType()
8574 NewVD->hasExternalStorage()) { in CheckVariableDeclarationType()
8580 int Scope = NewVD->isStaticLocal() | NewVD->hasExternalStorage() << 1; in CheckVariableDeclarationType()
8582 Diag(NewVD->getLocation(), diag::err_opencl_global_invalid_addr_space) in CheckVariableDeclarationType()
8585 Diag(NewVD->getLocation(), diag::err_opencl_global_invalid_addr_space) in CheckVariableDeclarationType()
8587 NewVD->setInvalidDecl(); in CheckVariableDeclarationType()
8592 Diag(NewVD->getLocation(), diag::err_opencl_function_variable) in CheckVariableDeclarationType()
8594 NewVD->setInvalidDecl(); in CheckVariableDeclarationType()
8604 Diag(NewVD->getLocation(), diag::err_opencl_function_variable) in CheckVariableDeclarationType()
8607 Diag(NewVD->getLocation(), diag::err_opencl_function_variable) in CheckVariableDeclarationType()
8609 NewVD->setInvalidDecl(); in CheckVariableDeclarationType()
8617 Diag(NewVD->getLocation(), diag::err_opencl_addrspace_scope) in CheckVariableDeclarationType()
8620 Diag(NewVD->getLocation(), diag::err_opencl_addrspace_scope) in CheckVariableDeclarationType()
8622 NewVD->setInvalidDecl(); in CheckVariableDeclarationType()
8631 Diag(NewVD->getLocation(), diag::err_as_qualified_auto_decl) << 1; in CheckVariableDeclarationType()
8632 NewVD->setInvalidDecl(); in CheckVariableDeclarationType()
8638 if (NewVD->hasLocalStorage() && T.isObjCGCWeak() in CheckVariableDeclarationType()
8639 && !NewVD->hasAttr<BlocksAttr>()) { in CheckVariableDeclarationType()
8641 Diag(NewVD->getLocation(), diag::warn_gc_attribute_weak_on_local); in CheckVariableDeclarationType()
8644 Diag(NewVD->getLocation(), diag::warn_attribute_weak_on_local); in CheckVariableDeclarationType()
8652 Diag(NewVD->getLocation(), diag::err_wasm_table_in_function); in CheckVariableDeclarationType()
8653 NewVD->setInvalidDecl(); in CheckVariableDeclarationType()
8656 if (NewVD->getStorageClass() != SC_Static) { in CheckVariableDeclarationType()
8657 Diag(NewVD->getLocation(), diag::err_wasm_table_must_be_static); in CheckVariableDeclarationType()
8658 NewVD->setInvalidDecl(); in CheckVariableDeclarationType()
8663 Diag(NewVD->getLocation(), in CheckVariableDeclarationType()
8665 NewVD->setInvalidDecl(); in CheckVariableDeclarationType()
8671 if (isVM || NewVD->hasAttr<CleanupAttr>() || in CheckVariableDeclarationType()
8672 NewVD->hasAttr<BlocksAttr>()) in CheckVariableDeclarationType()
8675 if ((isVM && NewVD->hasLinkage()) || in CheckVariableDeclarationType()
8676 (T->isVariableArrayType() && NewVD->hasGlobalStorage())) { in CheckVariableDeclarationType()
8680 NewVD->getTypeSourceInfo(), Context, SizeIsNegative, Oversized); in CheckVariableDeclarationType()
8682 if (FixedTInfo && T == NewVD->getTypeSourceInfo()->getType()) in CheckVariableDeclarationType()
8696 if (NewVD->isFileVarDecl()) in CheckVariableDeclarationType()
8697 Diag(NewVD->getLocation(), diag::err_vla_decl_in_file_scope) in CheckVariableDeclarationType()
8699 else if (NewVD->isStaticLocal()) in CheckVariableDeclarationType()
8700 Diag(NewVD->getLocation(), diag::err_vla_decl_has_static_storage) in CheckVariableDeclarationType()
8703 Diag(NewVD->getLocation(), diag::err_vla_decl_has_extern_linkage) in CheckVariableDeclarationType()
8705 NewVD->setInvalidDecl(); in CheckVariableDeclarationType()
8710 if (NewVD->isFileVarDecl()) in CheckVariableDeclarationType()
8711 Diag(NewVD->getLocation(), diag::err_vm_decl_in_file_scope); in CheckVariableDeclarationType()
8713 Diag(NewVD->getLocation(), diag::err_vm_decl_has_extern_linkage); in CheckVariableDeclarationType()
8714 NewVD->setInvalidDecl(); in CheckVariableDeclarationType()
8718 Diag(NewVD->getLocation(), diag::ext_vla_folded_to_constant); in CheckVariableDeclarationType()
8719 NewVD->setType(FixedT); in CheckVariableDeclarationType()
8720 NewVD->setTypeSourceInfo(FixedTInfo); in CheckVariableDeclarationType()
8726 if (NewVD->isThisDeclarationADefinition() || getLangOpts().CPlusPlus) { in CheckVariableDeclarationType()
8727 Diag(NewVD->getLocation(), diag::err_typecheck_decl_incomplete_type) in CheckVariableDeclarationType()
8729 NewVD->setInvalidDecl(); in CheckVariableDeclarationType()
8734 if (!NewVD->hasLocalStorage() && NewVD->hasAttr<BlocksAttr>()) { in CheckVariableDeclarationType()
8735 Diag(NewVD->getLocation(), diag::err_block_on_nonlocal); in CheckVariableDeclarationType()
8736 NewVD->setInvalidDecl(); in CheckVariableDeclarationType()
8740 if (!NewVD->hasLocalStorage() && T->isSizelessType() && in CheckVariableDeclarationType()
8742 Diag(NewVD->getLocation(), diag::err_sizeless_nonlocal) << T; in CheckVariableDeclarationType()
8743 NewVD->setInvalidDecl(); in CheckVariableDeclarationType()
8747 if (isVM && NewVD->hasAttr<BlocksAttr>()) { in CheckVariableDeclarationType()
8748 Diag(NewVD->getLocation(), diag::err_block_on_vm); in CheckVariableDeclarationType()
8749 NewVD->setInvalidDecl(); in CheckVariableDeclarationType()
8753 if (getLangOpts().C23 && NewVD->isConstexpr() && in CheckVariableDeclarationType()
8754 CheckC23ConstexprVarType(*this, NewVD->getLocation(), T)) { in CheckVariableDeclarationType()
8755 NewVD->setInvalidDecl(); in CheckVariableDeclarationType()
8759 if (NewVD->isConstexpr() && !T->isDependentType() && in CheckVariableDeclarationType()
8760 RequireLiteralType(NewVD->getLocation(), T, in CheckVariableDeclarationType()
8762 NewVD->setInvalidDecl(); in CheckVariableDeclarationType()
8768 !NewVD->isLocalVarDecl() && in CheckVariableDeclarationType()
8769 PPC().CheckPPCMMAType(T, NewVD->getLocation())) { in CheckVariableDeclarationType()
8770 NewVD->setInvalidDecl(); in CheckVariableDeclarationType()
8782 Diag(NewVD->getLocation(), diag::err_sve_vector_in_non_sve_target) << T; in CheckVariableDeclarationType()
8783 NewVD->setInvalidDecl(); in CheckVariableDeclarationType()
8787 Diag(NewVD->getLocation(), in CheckVariableDeclarationType()
8790 NewVD->setInvalidDecl(); in CheckVariableDeclarationType()
8800 RISCV().checkRVVTypeSupport(T, NewVD->getLocation(), cast<Decl>(CurContext), in CheckVariableDeclarationType()
8805 bool Sema::CheckVariableDeclaration(VarDecl *NewVD, LookupResult &Previous) { in CheckVariableDeclaration() argument
8806 CheckVariableDeclarationType(NewVD); in CheckVariableDeclaration()
8809 if (NewVD->isInvalidDecl()) in CheckVariableDeclaration()
8815 checkForConflictWithNonVisibleExternC(*this, NewVD, Previous)) in CheckVariableDeclaration()
8819 MergeVarDecl(NewVD, Previous); in CheckVariableDeclaration()